このコードは書籍serious-cryptography-practical-modern-encryptionにあります。このネストされたfcntlは何をしますか?
入れ子のfcntl
は何をしていますか? ファイルディスクリプタを取得し、FD_CLOEXEC
でそれをOred、私はここで何が起こっているかわかりません。
#ifndef O_CLOEXEC
fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
他のコードはわかりやすくするために省略されています。
'fcntl(fd、F_GETFD)'がエラーを返すかもしれないので、コードが安全ではないと思っていましたが、他の 'fcntl'もその状況で失敗すると予想していました。 – ikegami
そう、私もそう思った。内側のfcntlから戻り値を取得し、エラーをチェックしてから2番目のメソッドに渡すのが最善の方法です。 –
@ikegami彼は安全なコードについて説教しており、これは驚きです。指摘してくれてありがとう。 –