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

2019/11/21(木) 12:23:44.93ID:T7Jjyyy1
gets関数とか

その他の例
https://www.jpcert.or.jp/sc-rules/c-msc24-c.html
2020/07/13(月) 20:53:25.68ID:p7kPKe7n
>>156
ありがとうございます、昔に読んだのに URL を失ってしまって…ずっと探していたんです
2020/07/13(月) 21:24:21.32ID:jVM2RLmn
>>155
ありがとうございます >>146 です
拝見いたします
2020/07/14(火) 09:59:19.87ID:obK0XQNS
ありがとうございます。いや、longjmp をdisるような意図は無かったんだけど。
「シグナルとコールバック」も勉強になります。

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

この辺りは man を読んでも使い方が解りにくいので…
2020/07/23(木) 11:48:35.85ID:3i8DjqKb
_sが付いてるやつ使えよ
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.
うんこ
2021/05/21(金) 18:32:54.36ID:lDwsy5iU
プログラマを信じろと言うけどさ
じゃあ暗黙の型変換とか余計な節介やめてくれねーかな
2021/05/21(金) 18:36:26.66ID:HkPQV5tP
cでまともに算数出来れば一人前
2021/07/18(日) 03:12:16.30ID:a6CF+eHw
暗黙が嫌なら明示しろよばかじゃないの?
2023/01/02(月) 19:09:01.78ID:N1W2ThUk
>>162
暗黙の型変換はワーニング出るようにできなかったっけ?
2023/05/10(水) 10:41:52.89ID:zbvSAEuT
>>138
まとめがおかしい
啓蒙活動の結果gotoの有害な使い方は極めて少なくなった
というべきだろう
2023/08/04(金) 19:33:28.29ID:+XXFTri2
ken thompsonがcreat()の最後のeを省いたのは失敗だったと
直すとしたらそこを直したいと
2023/09/27(水) 15:27:11.03ID:0JeuaQMM
失敗は成功への近道だと思って取り組んでみよう。
2023/09/30(土) 09:21:33.38ID:z8ssgezC
(”ロ”;)ゲゲッ!!
2023/10/03(火) 12:21:18.69ID:QaeBAOHS
型省略でintと看做すのはミスだろ
2023/10/04(水) 22:29:38.55ID:pmZG4qtZ
>>170
K&Rの頃との互換性の為じゃないかな。

Cは、兎に角モノグサの為の様な仕様が多いよね。
一度馴染むと、BASICですら面倒くさい。
172デフォルトの名無しさん
垢版 |
2023/10/05(木) 17:05:36.61ID:WXXGTjkD
まんどくせ
173デフォルトの名無しさん
垢版 |
2023/10/05(木) 19:40:42.12ID:KP6Kmsv6
ポインタ渡し全般かな
174デフォルトの名無しさん
垢版 |
2023/10/05(木) 22:17:24.30ID:nm5oakcJ
Cの型はある意味pythonより弱い
2023/10/07(土) 11:48:43.75ID:QSI1NZ2Z
ある意味というか、Pythonは一応強い型付けでしょ。
176デフォルトの名無しさん
垢版 |
2023/10/07(土) 11:51:33.89ID:SZDGKzpf
Cに型なんかあって無い様なもんだしな
2023/10/07(土) 17:38:41.59ID:2aizzJpQ
>>1
fgets知らんのかな
getsなんて使わない
どうしても使う時はfgets(buf,size,stdin)とすればいいだけ
178デフォルトの名無しさん
垢版 |
2023/10/08(日) 10:11:26.30ID:CrdCteTP
>>176
Cはアセンブラで言うところのアドレッシングが充実
179デフォルトの名無しさん
垢版 |
2023/10/09(月) 15:00:06.76ID:gMk1hFfQ
マクロが真っ黒
2023/10/15(日) 02:11:48.65ID:LZ9c8wO/
∑(ノ▼ο▼)ノ オォオォオ!!
181デフォルトの名無しさん
垢版 |
2023/10/16(月) 09:47:48.72ID:kgcCjrnK
DDoS回避したみたいね
182デフォルトの名無しさん
垢版 |
2023/10/17(火) 11:44:25.59ID:xDsy3kB7
atan
(atan2の方じゃなくて)
183デフォルトの名無しさん
垢版 |
2023/10/18(水) 07:26:03.37ID:rpmqe4zi
くせの強いscanf()とか
184デフォルトの名無しさん
垢版 |
2023/10/18(水) 07:26:15.66ID:rpmqe4zi
くせの強いscanf()とか
185デフォルトの名無しさん
垢版 |
2023/10/18(水) 14:31:46.14ID:UTD5vf1X
visual studioでscanf()使ったらエラーになった
186デフォルトの名無しさん
垢版 |
2023/10/18(水) 14:31:57.74ID:UTD5vf1X
visual studioでscanf()使ったらエラーになった
187デフォルトの名無しさん
垢版 |
2023/10/20(金) 09:24:01.14ID:/M3RKJCH
free()
188デフォルトの名無しさん
垢版 |
2023/12/15(金) 15:34:51.20ID:dazO4Xak
sprintf()
189デフォルトの名無しさん
垢版 |
2023/12/17(日) 07:31:47.54ID:9k4gJxXV
fopen()
190デフォルトの名無しさん
垢版 |
2023/12/17(日) 08:12:54.14ID:9k4gJxXV
ctime()
191デフォルトの名無しさん
垢版 |
2023/12/31(日) 16:48:51.59ID:vzW4N1bb
fopen
192デフォルトの名無しさん
垢版 |
2024/01/06(土) 17:10:43.88ID:3kEfHLiK
strtok
193デフォルトの名無しさん
垢版 |
2024/02/01(木) 07:45:39.19ID:aKV2ok3G
freopen()
2024/02/01(木) 10:15:46.72ID:oHnzHX84
アセンブラの補助言語に何期待してスレ立ててんだかw
195デフォルトの名無しさん
垢版 |
2024/03/16(土) 16:31:48.55ID:YyexUT5o
tmpnam()
196デフォルトの名無しさん
垢版 |
2024/04/02(火) 13:56:34.07ID:OXdmWprY
getenv
2024/04/02(火) 20:32:38.29ID:yb6rvSIG
知ってる関数を並べるスレ
それにしても知らな過ぎるけどw
2024/04/08(月) 01:34:00.49ID:BIzdd6FB
C言語自体が設計ミス
199デフォルトの名無しさん
垢版 |
2024/04/19(金) 05:42:28.44ID:uD5nyH4z
C言語はUNIXを作るために作ったんだから、それを流用したせいで、アプリケーションの作成には合わないところがあるのは当然。
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のカーネルを記述するために使われるようになるのは後の展開である。
201デフォルトの名無しさん
垢版 |
2024/10/02(水) 13:09:25.40ID:XbzwGALZ
char *a と char a[] を関数の引数でも一緒にしてしまったところ
2024/10/04(金) 12:11:23.07ID:swUgCMz+
>>201
そこは長所では・・・?
203デフォルトの名無しさん
垢版 |
2024/10/04(金) 13:36:09.69ID:RixEjMnj
長所だらけで困るわ
2024/10/06(日) 00:28:28.16ID:k+hD1Cqq
配列からポインタへの暗黙の変換があるんだから型としては別で良かったんだよ
おかげで配列全体の値渡しや代入ができなくなってしまった
2024/10/06(日) 00:39:07.43ID:MZAtOKFs
無意識にそんなムダなことやられても困る
mallocとか使って明示的にやれるからいいだろ
2024/10/06(日) 12:12:21.53ID:onWt8ZIM
値で渡したかったら構造体で包めばいいし
逆に配列を値渡しするような言語って少ないんじゃないの
参照渡しするのばっかりだろ
2024/10/06(日) 13:06:18.36ID:k+hD1Cqq
一貫性のない型があるとジェネリクスに支障が出る
C++はそれですごい苦労した挙句std::arrayみたいな馬鹿みたいなものができた
2024/10/07(月) 10:27:10.86ID:1tKKan7C
>>206
結局フレキシブル構造体が仕様として認められてる以上、実体渡しも信用ならんのよ
struct chinko{
int a;
char b[0];
};

gccならこんなうんちもある
struct unko{
int a[0];
char b[0];
};
209デフォルトの名無しさん
垢版 |
2024/12/13(金) 17:18:33.74ID:cICuvaCO
C++で気をつけなければならないのは
size_t i=10;
double x=3-i;
十分地獄を堪能できる。C言語もunsigned int使えば同じか
210デフォルトの名無しさん
垢版 |
2024/12/13(金) 20:54:34.36ID:3kdcRUf+?2BP(1000)

EchoAPIをVS Codeで使い始めてから、開発プロセスが大きく変わった
211デフォルトの名無しさん
垢版 |
2024/12/21(土) 10:57:59.51ID:bIHzWCsd
strlen
212デフォルトの名無しさん
垢版 |
2024/12/21(土) 17:09:02.79ID:SDOaO/8s
シュトーレン
2024/12/22(日) 22:33:54.16ID:63BRvCCZ
fork;execvp
2024/12/29(日) 07:02:35.25ID:pX0TYs46
C言語には、組み込み関数なんてmainしか無いと思うなあ。
2024/12/29(日) 10:09:42.10ID:Jnwqtt+s
面倒くさいからPOSIXは組込み扱いでいいよ
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況