2011-05-22 18 views
0

で停止まあそれはいくつかのではなく、私には明らかであり(それはドキュメントに記載されていません):writeシステムコールが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を書き込むにはどうしたらいいですか?

ありがとうございます!

+0

私は、ファイルにあなたのコード、それ右のH10を実行すると、ないそのよう'\ 0'で停止します。これはubuntuにあります – freethinker

+0

どのようにデータが存在しないことを確認していますか?あなたは窓にいますか? – Mat

+0

私は古いUbuntuのバージョンでこれを試しました - これはWindowsで動かないでしょう。私はファイルを開き、そこにHだけを見ます。だからあなたはそれがシステムに依存するかもしれないと思いますか? –

答えて

0

解決済み:ピコはh^@ 10を示しています。結局のところnulは書かれていますので、「WinSCPの内部テキストエディタ」でした。まだ私にとって謎の何か。

(コメントに促さと答えた - まだ誰かが私のためにこれを確認することができれば私は100%を確認することができます...)