Unix 在nul写入系统调用停止
这对一些人来说可能是显而易见的,但对我来说不是(文档中没有提到): 将只向文件写入“h”-因此缓冲区中的nul会终止write(),尽管被要求写过去?那么,如何将nul写入文件Unix 在nul写入系统调用停止,unix,system-calls,Unix,System Calls,这对一些人来说可能是显而易见的,但对我来说不是(文档中没有提到): 将只向文件写入“h”-因此缓冲区中的nul会终止write(),尽管被要求写过去?那么,如何将nul写入文件 谢谢 已解决:pico显示h^@10-因此nul毕竟是编写的-因此它是“WinSCP的内部文本编辑器”。对我来说还是个谜 (按照评论中的提示回答-如果有人能帮我确认一下,那么我可以100%确定…当我运行你的代码时,它正好指向文件,所以它不会在\0上停止,这是在ubuntu上。你如何确保数据不在那里?你在windows上吗
谢谢 已解决:pico显示h^@10-因此nul毕竟是编写的-因此它是“WinSCP的内部文本编辑器”。对我来说还是个谜
(按照评论中的提示回答-如果有人能帮我确认一下,那么我可以100%确定…当我运行你的代码时,它正好指向文件,所以它不会在
\0
上停止,这是在ubuntu上。你如何确保数据不在那里?你在windows上吗?我在一个较旧的ubuntu版本上试过这个-不,这个不会在windows上运行。我打开文件,只看到一个H。所以你认为它可能与系统有关?你是如何检查文件内容的?如果你有答案,请将其作为一个答案发布,不要修改问题。
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;
}