mkfifo时出错,errno=2 perror打印的信息为 Interrupted system call 能不能解释一下是什么原因?
by daniel_kohler - C/C++ - 2010-05-07 17:56:01 阅读(1689) 回复(1)
(1)if(mkfifo("a1.text",O_CREAT|0666)<0) perror("mkfifo error"); (2)if(mkfifo("a2.text", 0666)<0) perror("mkfifo error"); 这两个有什么区别啊 都是创建有名管道!喃
mkfifo(建立实名管道) 相关函数 pipe,popen,open,umask 表头文件 #include#include 定义函数 int mkfifo(const char * pathname,mode_t mode); 函数说明 mkfifo() 会依参数pathname建立特殊的FIFO文件,该文件必须不存在,而参数mode为该文件的权限(mode%~umask),因此 umask值也会影响到FIFO文件的权限。mkfifo()建立的FIFO文件其他进程都可以用读写一般文件的方式存取。当使用open()来打开 FIFO文件时,O_NONB...
$ uname -a Linux lww 2.6.30-1-686 #1 SMP Sat Aug 15 19:11:58 UTC 2009 i686 GNU/Linux $ perl -MPOSIX -wle 'mkfifo("/tmp/fifo", 0777)' $ ls -l /tmp/fifo prwxr-x--- 1 hs hs 0 2009-10-08 16:41 /tmp/fifo 其它用户的不能有任何权限,组用户不能有写的权限?
出错提示:Operation not permitted mode_t 设置为0666 umask为 0022 我是以root的身份登录的,不知道是什么原因造成的哦,应该怎么解决呢?
我希望使用mkfifo进行多线程的通信,但实际的运行结果不对,表现为
1,有的发送的字符,没有接受到
下面是程序,请高手帮忙
//文件名fifo。c,服务器端
include
写了一个mkfifo程序,总是出现莫明其妙的问题,现在贴出来,请大家帮指点一下。 这是write 函数 int main(int argc, char **argv) { int r_value = 0; ix_uint32 i_rbyte = 0; ix_uint8 i_type = 0; ix_uint8 r_log_buf[2048] = {0}; ix_uint8 r_dbg_buf[2048] = {0}; ix_uint8 fd = 0; ix_uint8 i_count = 0; ix_uint32 read_wbyte = 0; ix_uint8 i_stat = 0; if (argc < 4) { fprintf(stderr, "the ...
mknod ,mkfifo 有何区别, 还有就是mknod的主要作用是什么?在建立设备文件,还有什么? 在建立设备文件时,主设备,次设备怎么确定?能给个详细的例子吗?谢谢
mknod ,mkfifo 有何区别, 还有就是mknod的主要作用是什么?在建立设备文件,还有什么? 在建立设备文件时,主设备,次设备怎么确定?能给个详细的例子吗?谢谢