C言語の設計ミスった危険な関数トップ10決めようぜ

0001デフォルトの名無しさん2019/11/21(木) 12:23:44.93ID:T7Jjyyy1
gets関数とか

その他の例
https://www.jpcert.or.jp/sc-rules/c-msc24-c.html

0150デフォルトの名無しさん2020/07/11(土) 00:22:05.38ID:UdJEarb2
いろんな言語たらい回しにされるって不幸だよね。

こういうノーガキ垂れる奴がウチの職場にいなくて良かった〜ヽ(´▽`)/

0151デフォルトの名無しさん2020/07/11(土) 10:50:20.85ID:J0INoyBc
>>147
OSのAPIは文字数じゃなくて
文字列byte列+デリミタ'$'
みたいなのが多かったぞ

0152デフォルトの名無しさん2020/07/11(土) 12:01:47.31ID:2M7rjl8q
>>151
それはCP/Mの文字列出力がそうなっていただけ
入力はC言語のfgets()なんかみたいにデリミタの '$' を付加したりしないよ

0153デフォルトの名無しさん2020/07/11(土) 23:02:45.45ID:wT5X8b6q
MASM もそうだけど、$ は実際にメモリに配置されるのですか?
それとも、db(アセンブラ命令)で長さを省略するためのものですか?

0154デフォルトの名無しさん2020/07/11(土) 23:04:50.81ID:wT5X8b6q
すみません、>>153 です
送信した瞬間に自分の発言の矛盾に気がつきました…

0155デフォルトの名無しさん2020/07/13(月) 19:12:30.84ID:Xa4f7njE
>>146
longjumbと例外に関して
すばらしい文書があるからお読みなさって。
http://www.nurs.or.jp/~sug/a/super/longjmp.htm#sec36

0156デフォルトの名無しさん2020/07/13(月) 19:20:56.50ID:WBkWHxcT
そっちは Not Found ですよ
http://www.nurs.or.jp/~sug/soft/super/longjmp.htm

0157◆QZaw55cn4c 2020/07/13(月) 20:53:25.68ID:p7kPKe7n
>>156
ありがとうございます、昔に読んだのに URL を失ってしまって…ずっと探していたんです

0158デフォルトの名無しさん2020/07/13(月) 21:24:21.32ID:jVM2RLmn
>>155
ありがとうございます >>146 です
拝見いたします

0159デフォルトの名無しさん2020/07/14(火) 09:59:19.87ID:obK0XQNS
ありがとうございます。いや、longjmp をdisるような意図は無かったんだけど。
「シグナルとコールバック」も勉強になります。

http://www.nurs.or.jp/%7Esug/soft/super/signal.htm

この辺りは man を読んでも使い方が解りにくいので…

0160デフォルトの名無しさん2020/07/23(木) 11:48:35.85ID:3i8DjqKb
_sが付いてるやつ使えよ

0161デフォルトの名無しさん2021/05/21(金) 17:59:38.38ID:lDwsy5iU
関数じゃないけどこれやろ
If the unsigned type has conversion rank greater than or equal to the rank of the signed type, then the operand with the signed type is implicitly converted to the unsigned type.
うんこ

0162デフォルトの名無しさん2021/05/21(金) 18:32:54.36ID:lDwsy5iU
プログラマを信じろと言うけどさ
じゃあ暗黙の型変換とか余計な節介やめてくれねーかな

0163デフォルトの名無しさん2021/05/21(金) 18:36:26.66ID:HkPQV5tP
cでまともに算数出来れば一人前

0164デフォルトの名無しさん2021/07/18(日) 03:12:16.30ID:a6CF+eHw
暗黙が嫌なら明示しろよばかじゃないの?

0165デフォルトの名無しさん2023/01/02(月) 19:09:01.78ID:N1W2ThUk
>>162
暗黙の型変換はワーニング出るようにできなかったっけ?

0166デフォルトの名無しさん2023/05/10(水) 10:41:52.89ID:zbvSAEuT
>>138
まとめがおかしい
啓蒙活動の結果gotoの有害な使い方は極めて少なくなった
というべきだろう

0167デフォルトの名無しさん2023/08/04(金) 19:33:28.29ID:+XXFTri2
ken thompsonがcreat()の最後のeを省いたのは失敗だったと
直すとしたらそこを直したいと

0168デフォルトの名無しさん2023/09/27(水) 15:27:11.03ID:0JeuaQMM
失敗は成功への近道だと思って取り組んでみよう。

0169デフォルトの名無しさん2023/09/30(土) 09:21:33.38ID:z8ssgezC
(”ロ”;)ゲゲッ!!

0170デフォルトの名無しさん2023/10/03(火) 12:21:18.69ID:QaeBAOHS
型省略でintと看做すのはミスだろ

0171デフォルトの名無しさん2023/10/04(水) 22:29:38.55ID:pmZG4qtZ
>>170
K&Rの頃との互換性の為じゃないかな。

Cは、兎に角モノグサの為の様な仕様が多いよね。
一度馴染むと、BASICですら面倒くさい。

0172デフォルトの名無しさん2023/10/05(木) 17:05:36.61ID:WXXGTjkD
まんどくせ

0173デフォルトの名無しさん2023/10/05(木) 19:40:42.12ID:KP6Kmsv6
ポインタ渡し全般かな

0174デフォルトの名無しさん2023/10/05(木) 22:17:24.30ID:nm5oakcJ
Cの型はある意味pythonより弱い

0175デフォルトの名無しさん2023/10/07(土) 11:48:43.75ID:QSI1NZ2Z
ある意味というか、Pythonは一応強い型付けでしょ。

0176デフォルトの名無しさん2023/10/07(土) 11:51:33.89ID:SZDGKzpf
Cに型なんかあって無い様なもんだしな

0177デフォルトの名無しさん2023/10/07(土) 17:38:41.59ID:2aizzJpQ
>>1
fgets知らんのかな
getsなんて使わない
どうしても使う時はfgets(buf,size,stdin)とすればいいだけ

0178デフォルトの名無しさん2023/10/08(日) 10:11:26.30ID:CrdCteTP
>>176
Cはアセンブラで言うところのアドレッシングが充実

0179デフォルトの名無しさん2023/10/09(月) 15:00:06.76ID:gMk1hFfQ
マクロが真っ黒

0180デフォルトの名無しさん2023/10/15(日) 02:11:48.65ID:LZ9c8wO/
∑(ノ▼ο▼)ノ オォオォオ!!

0181デフォルトの名無しさん2023/10/16(月) 09:47:48.72ID:kgcCjrnK
DDoS回避したみたいね

0182デフォルトの名無しさん2023/10/17(火) 11:44:25.59ID:xDsy3kB7
atan
(atan2の方じゃなくて)

0183デフォルトの名無しさん2023/10/18(水) 07:26:03.37ID:rpmqe4zi
くせの強いscanf()とか

0184デフォルトの名無しさん2023/10/18(水) 07:26:15.66ID:rpmqe4zi
くせの強いscanf()とか

0185デフォルトの名無しさん2023/10/18(水) 14:31:46.14ID:UTD5vf1X
visual studioでscanf()使ったらエラーになった

0186デフォルトの名無しさん2023/10/18(水) 14:31:57.74ID:UTD5vf1X
visual studioでscanf()使ったらエラーになった

0187デフォルトの名無しさん2023/10/20(金) 09:24:01.14ID:/M3RKJCH
free()

0188デフォルトの名無しさん2023/12/15(金) 15:34:51.20ID:dazO4Xak
sprintf()

0189デフォルトの名無しさん2023/12/17(日) 07:31:47.54ID:9k4gJxXV
fopen()

0190デフォルトの名無しさん2023/12/17(日) 08:12:54.14ID:9k4gJxXV
ctime()

0191デフォルトの名無しさん2023/12/31(日) 16:48:51.59ID:vzW4N1bb
fopen

0192デフォルトの名無しさん2024/01/06(土) 17:10:43.88ID:3kEfHLiK
strtok

0193デフォルトの名無しさん2024/02/01(木) 07:45:39.19ID:aKV2ok3G
freopen()

0194デフォルトの名無しさん2024/02/01(木) 10:15:46.72ID:oHnzHX84
アセンブラの補助言語に何期待してスレ立ててんだかw

0195デフォルトの名無しさん2024/03/16(土) 16:31:48.55ID:YyexUT5o
tmpnam()

0196デフォルトの名無しさん2024/04/02(火) 13:56:34.07ID:OXdmWprY
getenv

0197デフォルトの名無しさん2024/04/02(火) 20:32:38.29ID:yb6rvSIG
知ってる関数を並べるスレ
それにしても知らな過ぎるけどw

0198デフォルトの名無しさん2024/04/08(月) 01:34:00.49ID:BIzdd6FB
C言語自体が設計ミス

0199デフォルトの名無しさん2024/04/19(金) 05:42:28.44ID:uD5nyH4z
C言語はUNIXを作るために作ったんだから、それを流用したせいで、アプリケーションの作成には合わないところがあるのは当然。

0200デフォルトの名無しさん2024/04/20(土) 15:12:18.54ID:CogYy1zn
https://ja.wikipedia.org/?curid=1022

「UNIXを開発するためにC言語が作り出された」と言われることがあるが、「The Development of the C Language」によると、これは正しくなく、経緯は以下の通りである。
C言語は、当初はあくまでもOS上で動くユーティリティを作成する目的で作り出されたものであり、OSのカーネルを記述するために使われるようになるのは後の展開である。

新着レスの表示
レスを投稿する