programmation c sous unix HELP ME PLEASE
bonjour tout le monde,
enfaite j ai un petit programme à réaliser!! programmation C sous Unix
il faut que je fasse une communication entre plusieurs processus qui permettent aux différents utilisateurs de s envoyer des messages format texte!!(en utilisant des tubes nommés)
ceci implique le fait que je dois connecter sur une même machine unix (pas besoin de socket) ces différents utilisateurs!!
j ai essayer d avancer dans le reste du projet mais j arrive toujours pas à faire la connexion!! donc j arrive toujours pas à vérifier si mon programme marche ou pas!!!
j ai fait quelques recherches!!
enfaite j ai essayé ça comme truc juste pour la connexion:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| //je crée mon fifo directement dans le shell: $mkfifo -m 0666 monfifo
//je donne au groupe l accès d'écriture et d'exécution: $chmod g+rw monfifo
int main(int argc,char**argv[])
{
system(./HOME);
if(nb=fork())<0)
{perror("erreur fork()");
exit(1);
}
if(nb==0){ /*creation d un tube pour un utilisateur*/
g=getpid();
c=getenv("user");
printf("l'utilisateur est: %s",c)
if (mknod ("../c/fifo", S_IFIFO | 0666,0) == -1)
{ perror ("erreur de création fifo");
exit (1);}
system(chmod g+w);
if(mkfifo(ffils=open("../c/fifo",O_WRONLY))==-1)||(mkfifo(fpere=open("monfifo",O_RDONLY,O_NONBLOCK)))==-1{
perror("erreur d ouverture ");
exit(1);
} }
while(1){
while(buf[s_buf]=getchar()!='\n'){
write(ffils,buf,160*sizeof(char));
read(fpere,buf,160*sizeof(char));
} |
:oops:
et donc a chaque fois que quelqu'un lance mon programme je prends son nom pour peut être après l utiliser pour créer un tube pour l'utilisateur en question
j en suis pas sûre!! :roll:
autrement comment je fais pour créer un fifo pour chacun des utilisateurs?
et comment je fais pour affecter getenv a une variable que je pourrai utiliser après?:cry:
si vous pouvez m aider svp :aie: