一个程序运行后改为nobody,向/tmp目录的下的为777的写数据,write总是返回0,文件不能被写入。然后在chinaunix的论坛上发贴,以下是探讨的大致过程。
1、用strerror(errno)输出的语句是"Socket operation on non-socket"。
2、不是打开失败,打开文件我作了出错检查的。
3、用的open/write,用fopen/fwrite却可以写入。
4、使用open时,O_WRONLY、O_RDONLY、O_RDWR是必须选一个的。
5、单独写一个程序测试是可以写入的。
结果:
这是一个CPP程序,在这个函数所在的类中有一个参数完全一样(返回值为bool,把返回值赋给int型是没有警告的)的write,不过它是针对socket(所以报错"Socket operation on non-socket")的,而我不知道,于是就出错了,改为::write成功。
阅读(3001) | 评论(0) | 转发(0) |