mkfifo()
현재 디렉토리에서 권한 오류가 발생합니다. 여기에 파일을 만들 수있는 권한이 있습니다. 어떤 문제가 어떤 문제 일 수 있습니까?C (명명 된 파이프)의 FIFO
char dir[FILENAME_MAX];
getcwd(dir, sizeof(dir));
for(i = 0; i<num_nodes; i++)
{
char path[FILENAME_MAX];
sprintf(path, "%s/%d",dir, i);
printf("%s\n", path);
fifoArray[i] = mkfifo(path, O_WRONLY);
if(fifoArray[i] < 0)
{
printf("Couldn't create fifo\n");
perror(NULL);
}
}
"fifo를 만들 수 없습니다."라는 오류 메시지가 나타납니다. 따라서, 그것은 stderr에 속합니다. 단순히'perror (path);를 쓰는 것이 낫겠지 만, 당신의 printf는 아마'errno'를 변경하고 있습니다, 그래서 당신의 perror 호출은 나쁜 정보를 제공합니다. –
'errno'가 무엇으로 설정되었는지 확인 했습니까? – squiguy
printf를 제거하면 perror()는 무엇을 인쇄합니까? – pedr0