#include <unistd.h>
#include<stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
int main (int argc, char * argv[])
{
int enteroParaElPipe;
int IDPROGRAMACLIENTE=getpid();
printf("%d",IDPROGRAMACLIENTE);
if((mkfifo("pipe",0666))==-1)
{
perror("error creating pipe, type 1");
exit(1);
}
if((enteroParaElPipe=open("pipe",O_WRONLY))==-1)
{
perror("error creating pipe, type 2");
exit(1);
}
char comando[200];
if(scanf("%199s", comando) == 1)
puts(comando);
int written;
escritos=write(enteroParaElPipe,"HOLA\n",5);
printf("Written: %d\n",written);
close(enteroParaElPipe);
return 0;
}
Lorsque vous essayez d'exécuter ce code, je reçois:Quel est le problème avec ce tuyau?
error creating pipe: Invalid argument
Pourquoi?
(modifications sur la base des premières réponses ajoutées)
Pourquoi vous passer un pid 'mkfifo'? Vous devriez également utiliser différents messages pour les différents cas d'erreur afin que vous puissiez savoir lequel est arrivé. –
votre formatage de code était horrible. Je l'ai amélioré un peu, et c'est toujours moche. Vous voulez que les gens passent par votre code? le moins que vous puissiez faire est de le formater. – abelenky
@abelenky: ouais, désolé. J'ai sorti les parties non formées et non pertinentes. – andandandand