[過去ログ]
C言語なら俺に聞け 163 (1002レス)
C言語なら俺に聞け 163 http://mevius.5ch.net/test/read.cgi/tech/1721137434/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
760: 警備員[Lv.1][新芽] (ワッチョイ 4df5-hVWE) [sage] 2025/04/08(火) 22:40:53.76 ID:NxLLuNcW0 うちはダメでした >>755 と同じような結果です ubuntu22.04 lts http://mevius.5ch.net/test/read.cgi/tech/1721137434/760
761: 警備員[Lv.1][新芽] (ワッチョイ 4df5-hVWE) [sage] 2025/04/08(火) 22:43:01.77 ID:NxLLuNcW0 あ、次のようにしたときです sudo ./a.out /tmp/log に追記されませんでした http://mevius.5ch.net/test/read.cgi/tech/1721137434/761
762: 755 (ワッチョイ a92a-ZtHn) [] 2025/04/08(火) 22:49:40.17 ID:Rmhs1Vne0 >>759 えー!? と別環境で実行したら、sudo でも execl が動作したように見える。なにこれ。 $ ./a.out $ cat /tmp/log 13706 1 $ sudo ./a.out $ cat /tmp/log 13706 1 13721 1 $ 取り敢えず、うちの Ubuntu の「おま環」問題のようでした。お騒がせしました。 ただ、今回のは bash の $PPID が init (1) になるという新たな謎が... http://mevius.5ch.net/test/read.cgi/tech/1721137434/762
763: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-xzp7) [sage] 2025/04/09(水) 00:22:33.67 ID:06ntJanv0 親プロセスが先に死んだら子は init の養子になる。 だけどこの場合だとどちらが先に死ぬかはプロセスのスケジューリング次第で状況によるってことなんじゃないのかな。 Linux の事情はよく知らんけど。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/763
764: デフォルトの名無しさん (ワッチョイ 4df4-bRAX) [sage] 2025/04/09(水) 00:23:29.81 ID:Z/QH/Jgt0 Linux 板で聞いた方が回答ありそうな気がする。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/764
765: デフォルトの名無しさん (ワッチョイ ae7e-GhsC) [] 2025/04/09(水) 15:00:16.84 ID:cB69i6Vg0 const unsigned char t100_day[3807] PROGMEM = { 0x89, 0x50, 0x4e, 略, } const unsigned char t100_night[3568] PROGMEM = { 0x89, 0x50, 0x4e, 略, } String tenki_i = "01"; char*const unsigned char t100_day[3807] PROGMEM = { 0x89, 0x50, 0x4e, 略, } const unsigned char t100_night[3568] PROGMEM = { 0x89, 0x50, 0x4e, 略, } String tenki_i = "01"; char* y_icon; // FIXME 型が分からない if (tenki_i == "
;01") y_icon = "t100_day"; else if (tenki_i == "01_n") y_icon = "t100_night"; else if (tenki_i == "08") y_icon = "t200_day"; else if (tenki_i == "08_n") y_icon = "t200_night"; else y_icon = "t999_day"; sprite.drawPng((std::uint8_t*)y_icon, sizeof(y_icon), 0, 25); t100_dayなどは画像なんですけど、tenki_iの中のstrによって画像を変えたいです。 y_iconはどうやって指定したらいいでしょうか? http://mevius.5ch.net/test/read.cgi/t
ech/1721137434/765
766: デフォルトの名無しさん (ワッチョイ ae7e-GhsC) [] 2025/04/09(水) 15:01:47.32 ID:cB69i6Vg0 >>765 コピペ間違えました 正しくは以下です char*const unsigned char t100_day[3807] PROGMEM = { 0x89, 0x50, 0x4e, 略, } const unsigned char t100_night[3568] PROGMEM = { 0x89, 0x50, 0x4e, 略, } String tenki_i = "01"; char* y_icon; // FIXME 型が分からない if (tenki_i == "01") y_icon = "t100_day"; else if (tenki_i == "01_n") y_icon = "t100_night"; else if (tenki_i
== "08") y_icon = "t200_day"; else if (tenki_i == "08_n") y_icon = "t200_night"; else y_icon = "t999_day"; sprite.drawPng((std::uint8_t*)y_icon, sizeof(y_icon), 0, 25); t100_dayなどは画像なんですけど、tenki_iの中のstrによって画像を変えたいです。 y_iconはどうやって指定したらいいでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1721137434/766
767: デフォルトの名無しさん (スッップ Sd22-yI6P) [] 2025/04/09(水) 15:16:14.76 ID:qDwL9bg0d >>755もそうだし書いちまったもんはしょうがねーけどコードを載せる時は どうしろこうしろって書いてあんだから従えよ アンタどこ行ってもそんな感じなのか? http://mevius.5ch.net/test/read.cgi/tech/1721137434/767
768: デフォルトの名無しさん (ワッチョイ 79f9-GhsC) [] 2025/04/09(水) 15:24:40.77 ID:Hnk7Q6m60 すみません、書き直しました https://ideone.com/CSy0Nb t100_dayなどは画像なんですけど、tenki_iの中のstrによって画像を変えたいです。 y_iconはどうやって指定したらいいでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1721137434/768
769: デフォルトの名無しさん (ワッチョイ 06a6-9hLw) [sage] 2025/04/09(水) 15:27:10.13 ID:lI8vd/RJ0 >>755 fork呼んだ親プロセスがreturn 0でいきなり終わってるのがダメ wait呼んでプロセスの終了待ちしろ http://mevius.5ch.net/test/read.cgi/tech/1721137434/769
770: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-xzp7) [sage] 2025/04/09(水) 18:01:06.77 ID:06ntJanv0 >>768 その断片的なプログラムではよくわからんが型を合わせるだけなら y_icon の宣言はこうなるべきだと思う。 const unsigned char* y_icon; http://mevius.5ch.net/test/read.cgi/tech/1721137434/770
771: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-xzp7) [sage] 2025/04/09(水) 18:30:26.27 ID:06ntJanv0 >>768 ところでそれは C++ じゃない? なんでこのスレで聞くの……。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/771
772: 755 (ワッチョイ 6e2a-ZtHn) [] 2025/04/09(水) 19:53:07.12 ID:dFJfWRF+0 >>769 「お騒がせしました。」と言ったので、勝手ながら質問を終えた気がしていた。見てくれて有り難う。 >>755,762 については、Ubuntu においても sudo で execl は動作していた。 動作しないように見えたのは、Ubuntu 特有のファイル権限設定があり、root といえどもファイルにアペンドできないせいだった。Qiita にあったサマリが解りやすい。 https://qiita.com/skyflare2001/items/1c1934b1d2f405228334#2025118-追記 > Ubuntu の /tmp のユーザファ
イルに root で追記できない 全く C言語に関係なかった。ごめんちゃい。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/772
773: デフォルトの名無しさん (アウアウウー Sa21-NXaD) [] 2025/04/20(日) 14:12:51.27 ID:RiHDJnuQa stdbool.h 真面目に使ってる人いる?あるいは使ってない方がおかしい? http://mevius.5ch.net/test/read.cgi/tech/1721137434/773
774: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-C6fW) [sage] 2025/04/20(日) 16:06:51.19 ID:srj6a33k0 原則としては論理型が必要であれば stdbool.h (内で定義される bool) を使うべきだと思う。 論理型が C99 で導入されるより前の古いプログラム中で bool という名前を使っている場合に配慮して論理型の名前を _Bool にした上でその別名の bool を stdbool.h 内で定義するという変な構成になっている。 (もし bool という名前を独自の定義で使っている場合は単に stdbool.h を使わないという選択が可能。) このような状況から、互換性の問題がなけ
れば論理型は bool という名前にしたかったし、論理型の値は true, false と書きたいという意図が感じられる。 自分が書くプログラム内で名前が衝突するような問題がないのなら意図に乗っかっておくのが無難そうに思われる。 C23 からは bool, true, false がキーワードとして直接にサポートされるようになって stdbool.h は意味を失いただ存在するだけになった。 こういう変更をする以上はこれが C のあるべき新しい姿と考えられてるってことなんだろう。 stdbool.h を使うことで (古い規格でも) 新しい姿を先取りできるわけ。 ただ、 C23 の変更は
ちょっとだけ互換性を損なう部分があるから注意を要する。 stdboo.h で定義される旧来の true, false は 1, 0 に展開されるマクロで、要するに型で言えば int だった。 C23 からの true, false は bool 型のリテラルという立場を持つ。 これが問題になるケースはそれほどないとは思うけど……。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/774
775: デフォルトの名無しさん (ワッチョイ a95f-0ulL) [sage] 2025/04/20(日) 16:30:31.97 ID:VYLrteqj0 bool型だと関数成功はtrueで1 int型だと関数成功で0とか普通 混ぜるな危険 http://mevius.5ch.net/test/read.cgi/tech/1721137434/775
776: デフォルトの名無しさん (ワッチョイ 6db1-h0BB) [sage] 2025/04/20(日) 17:33:04.38 ID:SQJ2+pRN0 戻り値が負数ならエラーってやつが(ry http://mevius.5ch.net/test/read.cgi/tech/1721137434/776
777: デフォルトの名無しさん (ワッチョイ 5e93-M5IX) [sage] 2025/04/20(日) 18:02:02.88 ID:AC61QJPP0 関数の結果がboolのやつはエラー原因丸めて何が問題かわからないからクソだよな http://mevius.5ch.net/test/read.cgi/tech/1721137434/777
778: デフォルトの名無しさん (ワッチョイ 8a7a-I3kk) [] 2025/04/20(日) 18:06:56.21 ID:sZ1mcHs70 >>773 なんでstdbool.hがあるのかよく分からないってこと? http://mevius.5ch.net/test/read.cgi/tech/1721137434/778
779: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-imSP) [sage] 2025/04/20(日) 19:55:37.89 ID:srj6a33k0 >>778 「真面目に」というワードから「そんなにカッチリやるほどのもんかね?」みたいなニュアンスを感じる。 意味はわかった上でそれほど価値を感じてないのだと思う。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/779
780: デフォルトの名無しさん (ワッチョイ f9ee-0INX) [] 2025/04/20(日) 21:08:15.13 ID:0ZeTNaMX0 #define false 1==0 #define true !false 不真面目なんでいつもこれでやってました http://mevius.5ch.net/test/read.cgi/tech/1721137434/780
781: デフォルトの名無しさん (ワッチョイ 6db1-h0BB) [sage] 2025/04/20(日) 21:22:34.91 ID:SQJ2+pRN0 >777 エラー理由が必要なやつは引数に返り値用ポインタ要求する設計になってんじゃね? http://mevius.5ch.net/test/read.cgi/tech/1721137434/781
782: デフォルトの名無しさん (アウアウウー Sa21-NXaD) [] 2025/04/21(月) 02:34:30.39 ID:DqUDvQMka >>777 関数の結果の型がboolのやつが-1を返す例もあってな http://mevius.5ch.net/test/read.cgi/tech/1721137434/782
783: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 65d3-imSP) [sage] 2025/04/21(月) 05:17:15.86 ID:jNnWMUsR0 >>780 stdbool.h がやってるような #define false 0 #define true 1 ではなく無意味に遠回りな書き方をする理由は何? http://mevius.5ch.net/test/read.cgi/tech/1721137434/783
784: デフォルトの名無しさん (ワッチョイ 6639-nw4i) [sage] 2025/04/21(月) 05:35:14.60 ID:gJLXVah/0 そういや、boolの実値は処理系依存とはるか昔に習ったようなキモス http://mevius.5ch.net/test/read.cgi/tech/1721137434/784
785: デフォルトの名無しさん (スッップ Sd0a-Rq/v) [] 2025/04/21(月) 05:47:00.09 ID:wZXY8H1ed >>783 FAQを読め http://mevius.5ch.net/test/read.cgi/tech/1721137434/785
786: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 65d3-imSP) [sage] 2025/04/21(月) 05:54:01.88 ID:jNnWMUsR0 >>785 これのこと? https://c-faq.com/bool/booltype.html そういのを好む人もいるとだけ書かれていて、理由の説明はない。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/786
787: デフォルトの名無しさん (ササクッテロリ Spbd-0ulL) [sage] 2025/04/21(月) 09:56:56.17 ID:i498vk5cp #define TRUE (0==0) #define FALSE !TRUE この書き方はまだ世の中がBASICでソフト組んでた頃に見たわ たぶんそれ以前のどこか別の言語からの輸入なんだとは思うが かっこいいから好んで使ってる http://mevius.5ch.net/test/read.cgi/tech/1721137434/787
788: デフォルトの名無しさん (ワッチョイ 6582-0ulL) [sage] 2025/04/21(月) 09:58:55.59 ID:JjvQDxsX0 まあ、まだtrueが0以外って仕様だった頃に、より処理系に沿った正確な値が欲しかったんだ http://mevius.5ch.net/test/read.cgi/tech/1721137434/788
789: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7932-C6fW) [sage] 2025/04/21(月) 11:43:45.70 ID:++xqwTI40 >>788 PDP-11 時代の C のリファレンスマニュアルを見つけることが出来た。 https://web.archive.org/web/20250121035636/https://www.bell-labs.com/usr/dmr/www/cman.ps 1975 年頃のもので、このときすでに比較演算子や等価演算子は 1 か 0 を返すことになっている。 たぶん最初からそうだったと思う。 C の基礎になった B の時点で既にこのような仕様なので。 ただ、全ての処理系が完璧に同じ仕様に沿っていたわけでもないだろうし、当
時の事情の中で有用なテクニックだった可能性はあるかもしれない。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/789
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 213 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.017s