Я пытаюсь создать именованный канал в C, но безуспешно.
Вот мой код:
pid_t pid = getpid() ;
char * pipeNameo = malloc( sizeof(char) * 100 ) ;
len = 0 ;
//len += sprintf( pipeNameo + len, "%s", "/Users/Davidb/Desktop/") ; // tried various paths
len += sprintf( pipeNameo + len, "%ld", (long)pid) ;
len += sprintf( pipeNameo + len, "%s", "_") ;
len += sprintf( pipeNameo + len, "%d", i) ; // it is in a loop, i starts at 0 and increments
len += sprintf( pipeNameo + len, "%s", "o") ;
printf("pipeNameo : %s\n", pipeNameo ) ;
val = mkfifo(pipeNameo, 0666) ;
printf("Did named pipe succeed: %d\n", val) ;
Итак, после запуска этого я проверяю каталог, и файл не создается. Вот пример вывода:
OUTPUT, when loop runs twice
pipeNameo : /Users/Davidb/Desktop/1152_0o
Did named pipe succeed: 0
pipeNameo : /Users/Davidb/Desktop/1152_1o
Did named pipe succeed: 0
Пожалуйста помоги :)
ОБНОВЛЕНИЕ Хорошо, я вижу, что ls -l работал, когда путь был установлен на мой рабочий стол! Но это не работает, когда я пытаюсь установить его в текущий каталог (где хранится main.c). Я попытался добавить "/." и "/" перед именем канала не работали.