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が保存されている場所)に設定しようとすると機能しません。「/」を追加してみました。およびパイプ名の前に「/」があり、どちらも機能しませんでした。