このコードは何度か使用されています(write()
の代わりにopen()
が使用されている同様のコードもあります)。errno!= EINTR:それはどういう意味ですか?
int c = write(fd, &v, sizeof(v));
if (c == -1 && errno != EINTR) {
perror("Write to output file");
exit(EXIT_FAILURE);
}
&& errno != EINTR
場合、それはここでチェックされているのはなぜ? 男にerrno
探し
は私がEINTR
については、次のテキストを見つけましたが、私は私を啓発しないman 7 signal
を訪問した場合でも。
EINTR中断された関数呼び出し(POSIX.1); signal(7)を参照してください。
write
上man pageから
manページで 'write'を確認してください。特定のエラーでerrnoがどのように設定されているかを教えてください。 – Kevin
'write()'が 'ssize_t'を返し、** not **' int'を返すことにも注意してください。彼らは同じではありません。 –
ありがとうございました! @AndrewHenle私はそれを知っている、私はちょうど私がそれを見つけたようにコードの一部をコピーすることにしました:) 'int'の代わりに' ssize_t'を使ってすべて同じ質問を編集すべきだと思いますか? – Robb1