2018/12/29

[c/c++][CERT]errno_tという型があるのか

セキュアなCコードを書けるようになろう、ということで、再履修中。



DCL09-C. errno を返す関数は返り値を errno_t 型として定義する
https://www.jpcert.or.jp/sc-rules/c-dcl09-c.html

あれ・・・errnoってint型じゃなかったっけ??

ERRNO
http://linuxjm.osdn.jp/html/LDP_man-pages/man3/errno.3.html

そうそう、注意事項書かれているように、昔はerrno.hはなかったので、使うときは宣言してた。
errno.hができたというのは把握していたのだが、intでなくなったのは知らんかった。
が、ここのサンプルコードではintになってるな。


Ubuntu18.04の/usr/include/errno.hには、intをtypedefしてerrno_tに仕立てていた。
エラー値も#defineされていたし、そこまで心配はせんで良かろうが、int型に固執することもなかろう。
errnoをチェックするためにローカル保存するシーンはしばしばあるので、気をつけておかねば。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。