запись системного вызова останавливается на нуле - PullRequest
0 голосов
/ 22 мая 2011

Ну, это может быть очевидно для некоторых, но не для меня (и это не упомянуто в документации):

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 в файл?

Спасибо!

1 Ответ

0 голосов
/ 23 мая 2011

решено: пико показывает h ^ @ 10 - так что в конце концов нуль был написан - так что это был «Внутренний текстовый редактор WinSCP».Все еще что-то для меня загадка.

(ответил, как подсказано в комментариях - все еще, если кто-то может подтвердить это для меня, так что я могу быть уверен на 100% ...)

...