execlp, fork, wait

execlp, fork, wait - C - Programmation

Marsh Posté le 12-07-2004 à 11:25:48    

Bonjour,  
J'aimerais imprimer dans un fichier avec lp
soit : lp -o outfile=/root/titi.prn /root/titi.txt
ca ca marche
 
et ensuite j'aimerais travailler sur ce fichier.
Le pb c'est que il faut attendre que l'impression soit terminée pour travailler sur le fichier or mon prog ne le fait pas.
 
code:
 
#include ....
 
switch(fork())
{
case -1 ://erreur fork
 
case 0 : execlp("lp","lp","outfile=/root/titi.prn" "/root/titi.txt","NULL" );
exit(0);
getpid(pid);
 
default : break;
 
}
 
wait(pid);
 
//traitement sur le fichier /root/titi.prn
 
Or mon prog n'attend pas la fin de l'impression.
Si quelqu'un voit une erreur ou a une idée :hello:  
 

Reply

Marsh Posté le 12-07-2004 à 11:25:48   

Reply

Marsh Posté le 12-07-2004 à 11:38:18    

execlp("lp","lp","outfile=/root/titi.prn" "/root/titi.txt","NULL" );
exit(0);
getpid(pid);  
 
 
?
 
t'es sur d'avoir compris le exec ?

Reply

Marsh Posté le 12-07-2004 à 11:43:52    

le exec il effactue l'operation demande puis kille le processus alors c'est vrai c'est con ce que j'ai ecris
 
je peux mettre le getpid avant exec?

Reply

Marsh Posté le 12-07-2004 à 11:46:27    

il kill rien du tout. il remplace le processus courant par un autre

Reply

Marsh Posté le 12-07-2004 à 11:46:41    

et bien vu tes conneries en root

Reply

Marsh Posté le 12-07-2004 à 11:48:37    

sinon tu as une idée ?

Reply

Marsh Posté le 12-07-2004 à 11:51:51    

RTFM
man popen
man mkstemp

Reply

Marsh Posté le 15-07-2004 à 04:12:07    

Puis wait(), ça prend pas un pid en arguement... Regarde du côté de waitpid().

Reply

Sujets relatifs:

Leave a Replay

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