C语言文件I/O问题
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
int main(void)
{
int i, fd;
if(fd = open("main.txt", O_RDWR | O_CREAT, 0644) < 0)
puts("open error");
/* 当把下面的条件语句改成两个语句:
* i = dup(fd);
* if(i == -1)
* 这样就可以使得字符串:"hello"是向文件main.txt中写入,
* 而不是写入标准输出,在终端下显示。
* 我的问题是为什么这样不可以呢,第一个if里的open()就可以这样写呢。
*/
if(i = dup(fd) == -1)
puts("dup error");
write(i, "hello", 5); /* 并没有在文件main.txt中写入"hello",而写入标准输出 */
return 0;
}
消灭一切敌人
11 years, 6 months ago