Comment "installer" process.h

Comment "installer" process.h - C - Programmation

Marsh Posté le 07-09-2004 à 17:44:18    

Voilà, c'est a peu près ce qu'il y a dans le titre.
J'ai besoin de process.h et je tourne sur une debian woody. qqn Aurait une idée de comment récupérer ce fameux fichier (url, apt-get)
Merci d'avance
 

Reply

Marsh Posté le 07-09-2004 à 17:44:18   

Reply

Marsh Posté le 07-09-2004 à 17:52:38    

tu feras rien avec ce fichier. trouve de quelle bibliothèque ça fait parti et installe le

Reply

Marsh Posté le 07-09-2004 à 18:28:50    

Ok, je sais, qqn saurais de quelle bibliothèque ça fait partie?

Reply

Marsh Posté le 07-09-2004 à 18:31:27    

y a quoi dedans ?

Reply

Marsh Posté le 07-09-2004 à 19:21:04    

Tu peux rechercher de quel paquet un fichier fait partie sur le site de debian :
http://packages.debian.org/cgi-bin [...] &arch=i386

Reply

Marsh Posté le 08-09-2004 à 10:08:35    

Je suis aussi sous debian moi et j'ai bien un process.h qui corresponds a un des headers du noyau donc si c'est bien lui qui t'interesse (il faudrait peut etre que tu nous dises pourquoi tu recherches ce fichier voir si on parles du meme...) tu cherches un package qui devrait se nommer kernel-headers-version_de_ton_noyau-arch ou alors simplement kernel-headers-version_de_ton_noyau etu t fais un apt-get install

Reply

Marsh Posté le 08-09-2004 à 14:14:31    

Bin en fait, j'ai besoin d'une librairie pour spawner des programmes depuis un programme c. Le execl ne me convient pas car il se substitue au programme parent (il kill le proc parent, en fait). Et comme j'ai encore besoin de ce proc parent, je sais pas comment faire.

Reply

Marsh Posté le 08-09-2004 à 14:18:35    

il kill rien du tout
 
man fork
man pipe
man exec
man popen

Reply

Marsh Posté le 08-09-2004 à 18:53:56    

man execve :
 execve() does not return on success, and the  text,  data,bss,and  stack of the calling process are overwritten by that of the program loaded. The program invoked  inherits
the calling process's PID, and any open file descriptors
that are not set to close on exec.  Signals pending on the
calling process are cleared.  Any signals set to be caught
by  the  calling  process  are  reset  to  their   default
behaviour.   The  SIGCHLD signal (when set to SIG_IGN) may
or may not be reset to SIG_DFL.
 
 
 Bin la, pour moi, il prend la place du proc parent, ou je pige rien. Fork me sert pas car j'ai besoin d'executer un binaire. J'essaie pipe et popen et je redis comment ça va.
Merci des conseils

Reply

Marsh Posté le 08-09-2004 à 18:58:28    

ben toi t'as pas compris ce que fais fork. sans fork, point de processus autre qu'init

Reply

Marsh Posté le 08-09-2004 à 18:58:28   

Reply

Marsh Posté le 10-09-2004 à 04:45:52    

akronyme : le principe c'est de forker, puis dans le processus fils de faire un exec du binaire que tu veux exécuter. Après si tu veux faire communiquer tes deux processus, tu peux avoir besoin de jouer des dup2, pipe et autres... popen fait tout ça pour toi.
 
http://www.gnu.org/software/libc/m [...] #Processes

Reply

Marsh Posté le 10-09-2004 à 08:08:45    

La solution, alors, est de forker ton processus et de lancer ton programme avec execve à partir du fils!

Code :
  1. if(fork()==0){
  2.    execve("/bin/sh",NULL,NULL);
  3.    printf("Y'a eu un probleme!" );
  4. }


Message édité par torpe23 le 10-09-2004 à 08:10:50
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed