当前位置: 技术问答>linux和unix
下列程序为什么不能对文件读写。
来源: 互联网 发布时间:2015-09-03
本文导语: main() { fd=creat(filename,FILE_MODE); /* 创建文件 */ ... daemon_init(); /* daemon进程初始化函数 */ ... fdd=open(filename,O_WRONLY|O_APPEND); write(...
main()
{
fd=creat(filename,FILE_MODE); /* 创建文件 */
...
daemon_init(); /* daemon进程初始化函数 */
...
fdd=open(filename,O_WRONLY|O_APPEND);
write(fdd,"Hello",5)); /* 写入文件中 */
close(fd);
close(fdd);
exit(0);
}
结果是能生产filename文件,但是里头没数据?(好像daemon进程也不能读一个文件。)
虽然知道daemon进程的工作原理,但对上面现象还是不太理解,请高手们指点。
{
fd=creat(filename,FILE_MODE); /* 创建文件 */
...
daemon_init(); /* daemon进程初始化函数 */
...
fdd=open(filename,O_WRONLY|O_APPEND);
write(fdd,"Hello",5)); /* 写入文件中 */
close(fd);
close(fdd);
exit(0);
}
结果是能生产filename文件,但是里头没数据?(好像daemon进程也不能读一个文件。)
虽然知道daemon进程的工作原理,但对上面现象还是不太理解,请高手们指点。
|
那是因为你的daemon把工作目录改为了根目录,当然找不到你在原来工作目录创建的那个文件啦
chdir("/"); /* 改变工作目录 */
chdir("/"); /* 改变工作目录 */