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 : Sélectionner tout - Visualiser dans une fenêtre à part
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));
	}


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!!


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?

si vous pouvez m aider svp