写系统调用在nul停止

时间:2011-05-22 09:54:13

标签: unix system-calls

对某些人来说可能是显而易见的,但对我来说并不是这样(文档中没有提到):

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(),尽管被要求写过去吗?那我怎么写一个文件呢?

谢谢!

1 个答案:

答案 0 :(得分:0)

求助:pico显示h ^ @ 10 - 所以nul得到了写 - 毕竟它是“WinSCP的内部文本编辑器”。对我来说仍然是一个谜。

(根据评论中的提示回答 - 如果有人可以为我确认这一点,那么我可以百分百肯定......)