我需要使用mkfifo()
超级用户进程创建一个管道,该管道必须可以从一个非超级用户的进程写入。
读者:
int main () {
char *myfifo = "/tmp/myfifo";
int buf;
mkfifo(myfifo, 0777); //problem here
FILE *fp;
fp = fopen(myfifo,"r");
if ( fp == NULL) {
unlink(myfifo);
return -1;
}
printf("received: %d\n",buf);
fclose(fp);
unlink(myfifo);
return 0;
}
作家:
int main() {
FILE *fp;
char *myfifo = "/tmp/myfifo";
fp = fopen(myfifo,"w");
if ( fp == NULL)
return -1;
fprintf(fp, "%d ", 2);
fclose(fp);
return 0;
}
我打电话给./writer
和sudo ./reader
。
当我的作家尝试在返回分段错误的管道中写入时。如果我查看/tmp/myfifo
我发现权限prwxr-xr-x
,但我想要prw-rw-rw-
。