0
那么它可能会明显一些,但不是我(和它没有在文档中提到的):写系统调用停靠在NUL
int main(int argc, char** argv) {
char s[]= {'h','\0','l','0'};
int fd=open("myfile.txt", O_RDWR|O_CREAT|O_APPEND,0644);
write(fd,s,4);
return 0;
}
只会写“H”的文件 - 所以nul在缓冲区终止write(),尽管被要求写过去吗?那我怎么写一个nul文件呢?
谢谢!
当我运行你的代码,它的权利H10的文件,所以它不是在'\ 0'上停止,这是在Ubuntu natty – freethinker 2011-05-22 10:00:26
你如何确保数据不存在?你在窗户上吗? – Mat 2011-05-22 10:02:40
我在一个较旧的Ubuntu版本上试过这个 - 不会在Windows上运行。我打开文件,只看到一个H文件。所以你认为它可能取决于系统? – 2011-05-22 10:04:02