(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C17
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C23 最新ドラフト
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
※前スレ
C言語なら俺に聞け 163
https://mevius.5ch.net/test/read.cgi/tech/1721137434/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 164
1デフォルトの名無しさん (ワッチョイ 3301-UQbq)
2025/07/23(水) 15:30:01.81ID:eCR5cXRr02デフォルトの名無しさん (ワッチョイ a701-UQbq)
2025/07/23(水) 15:31:40.26ID:eCR5cXRr0 >!extend:checked:vvvvv:1000:512
>(新スレ立ての際上記コマンドを2行書き込んでください)
1行しか書き込まなかった
すまん
>(新スレ立ての際上記コマンドを2行書き込んでください)
1行しか書き込まなかった
すまん
3はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0732-geQ+)
2025/07/23(水) 15:50:50.63ID:3gCX+5nZ04デフォルトの名無しさん (ワッチョイ a701-UQbq)
2025/07/23(水) 16:26:36.12ID:eCR5cXRr0 おー、ごめん
5はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0732-wrhS)
2025/07/23(水) 17:42:37.36ID:3gCX+5nZ06デフォルトの名無しさん (ワッチョイ a701-UQbq)
2025/07/23(水) 19:21:57.84ID:eCR5cXRr0 立て直すのがいいんなら立て直します
7デフォルトの名無しさん (ワッチョイ dffd-k2hJ)
2025/07/23(水) 19:49:43.45ID:cQ85VHpL0 ボイス・トォ・スカル自動応答システムが下記でできるようになりました
リアルタイム翻訳の「DeepL Voice」がZoom Meetingsと連携開始、対応言語を拡大
https://news.mynavi.jp/techplus/article/20250723-3387014/
Copilot+ PCに最新のAI機能登場、7月のプレビュー更新プログラム「KB5062660」
https://news.mynavi.jp/techplus/article/20250723-3386867/
>>MicrosoftはWindows Insider Programでテストしていた設定アプリのAIエージェントを正式にリリースした。
※AIで何ができるかを全て書いている
リアルタイム翻訳の「DeepL Voice」がZoom Meetingsと連携開始、対応言語を拡大
https://news.mynavi.jp/techplus/article/20250723-3387014/
Copilot+ PCに最新のAI機能登場、7月のプレビュー更新プログラム「KB5062660」
https://news.mynavi.jp/techplus/article/20250723-3386867/
>>MicrosoftはWindows Insider Programでテストしていた設定アプリのAIエージェントを正式にリリースした。
※AIで何ができるかを全て書いている
8はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0732-wrhS)
2025/07/23(水) 19:52:38.68ID:3gCX+5nZ0 建て直しまでは不要やろ。
9デフォルトの名無しさん (ワッチョイ dffd-k2hJ)
2025/07/23(水) 20:08:17.09ID:cQ85VHpL0 ・ボイス・トォ・スカルをAIに任せていると誤作動を起こしている
・間違って関係ない人を攻撃し始める
「フクロウ好きなAIが生成した数列」で調整したAIもフクロウ好きになってしまう「サブリミナル学習」が起きる理由とは?
2025年07月23日 19時00分
https://gigazine.net/news/20250723-subliminal-learning-hidden-signals-data/
>>研究チームはサブリミナル学習について調べるための実験を行いました。実験では、まずはベースモデルから「特定の動物が好きな教師モデル」を作成し、数列やコード、思考の連鎖(CoT)といった狭い領域でデータを生成させました。このデータをフィルタリングして特性に関する明示的な言及を除外した上で、生徒モデルのファインチューニングを行い、最終的な生徒モデルがどのような特性を示すのかを評価したとのことです。
>>実験の結果、ファインチューニングに使われたデータには特性への明示的な参照や関連性がないにもかかわらず、生徒モデルは「教師モデルが好きな動物」を好きになることが示されました。
>>研究チームはデータに隠された特性を検出するため、大規模言語モデル分類器や文脈内学習による検出を試みたり、手動でデータを調査したりしたものの、行動特性を伝達している兆候を確認することはできませんでした。これは、サブリミナル学習における行動特性の伝達が、意味的に関連しない生成データ内のパターンに起因していることを示唆しています。
・間違って関係ない人を攻撃し始める
「フクロウ好きなAIが生成した数列」で調整したAIもフクロウ好きになってしまう「サブリミナル学習」が起きる理由とは?
2025年07月23日 19時00分
https://gigazine.net/news/20250723-subliminal-learning-hidden-signals-data/
>>研究チームはサブリミナル学習について調べるための実験を行いました。実験では、まずはベースモデルから「特定の動物が好きな教師モデル」を作成し、数列やコード、思考の連鎖(CoT)といった狭い領域でデータを生成させました。このデータをフィルタリングして特性に関する明示的な言及を除外した上で、生徒モデルのファインチューニングを行い、最終的な生徒モデルがどのような特性を示すのかを評価したとのことです。
>>実験の結果、ファインチューニングに使われたデータには特性への明示的な参照や関連性がないにもかかわらず、生徒モデルは「教師モデルが好きな動物」を好きになることが示されました。
>>研究チームはデータに隠された特性を検出するため、大規模言語モデル分類器や文脈内学習による検出を試みたり、手動でデータを調査したりしたものの、行動特性を伝達している兆候を確認することはできませんでした。これは、サブリミナル学習における行動特性の伝達が、意味的に関連しない生成データ内のパターンに起因していることを示唆しています。
10デフォルトの名無しさん (ワッチョイ 5994-GBVK)
2025/08/20(水) 10:08:45.42ID:704yfGVq0 スレ立て乙です
11デフォルトの名無しさん (ワッチョイ 4f72-Nq1z)
2025/09/19(金) 16:53:51.70ID:I8uDgIdj0 printf("Hello world.\n");
実はコレ初心者には深い意味は理解できない。
実はコレ初心者には深い意味は理解できない。
12デフォルトの名無しさん (ワッチョイ ff9f-uyy9)
2025/09/19(金) 18:20:32.71ID:J/qkDf0K0 くだらね
13デフォルトの名無しさん (ワッチョイ 4f1f-Nq1z)
2025/09/19(金) 19:00:56.16ID:I8uDgIdj0 まぁ初心者はそう思うやろ
14デフォルトの名無しさん (ワッチョイ cff7-V9PH)
2025/09/19(金) 19:40:35.09ID:/rC1fsI+0 printf("Hello work.\n");
15デフォルトの名無しさん (ワッチョイ ff9f-uyy9)
2025/09/19(金) 19:47:10.09ID:J/qkDf0K016デフォルトの名無しさん (ワッチョイ 0f2a-Ebmg)
2025/09/19(金) 20:28:54.31ID:54KHg9aZ017デフォルトの名無しさん (スフッ Sd5f-ilUi)
2025/09/19(金) 20:38:58.85ID:c/emMdhgd \nは一文字だが環境によっては実際に印字される文字数が変わる話か
18デフォルトの名無しさん (ブーイモ MM0f-uyy9)
2025/09/19(金) 20:51:06.48ID:GaQCh7ZTM 脈絡なしに突然上から目線で語り始めるのは老害じじいの特徴
19デフォルトの名無しさん (ワッチョイ 4f1f-Nq1z)
2025/09/19(金) 21:15:49.58ID:I8uDgIdj0 >>16
全然違うんだよなあ
全然違うんだよなあ
20デフォルトの名無しさん (ワッチョイ 4f1f-Nq1z)
2025/09/19(金) 21:17:56.30ID:I8uDgIdj021デフォルトの名無しさん (ワッチョイ 4f1f-Nq1z)
2025/09/19(金) 21:20:05.58ID:I8uDgIdj0 >>18
分からないのか悔しいクズの他責思考
分からないのか悔しいクズの他責思考
22デフォルトの名無しさん (ワッチョイ 4f1f-Nq1z)
2025/09/19(金) 21:32:26.80ID:I8uDgIdj0 一般的な仕様
定義 #include <stdio.h>
int printf ( const char * format, ... );
※C99規格では以下の定義となる
int printf ( const char * restrict format, ... );
定義 #include <stdio.h>
int printf ( const char * format, ... );
※C99規格では以下の定義となる
int printf ( const char * restrict format, ... );
23デフォルトの名無しさん (ワッチョイ 4f1f-Nq1z)
2025/09/20(土) 09:04:05.64ID:Soi7OpC1024デフォルトの名無しさん (ワッチョイ cf80-V9PH)
2025/09/20(土) 11:05:51.36ID:1eZiY7gC0 printfの戻り値について、有効な使い方を教えて
25デフォルトの名無しさん (ワッチョイ 8fda-Ix7K)
2025/09/20(土) 13:40:53.82ID:ShY3+uSC0 プリンターのトラブルで印刷に失敗したらエラーを返す
26デフォルトの名無しさん (アウアウウー Sa53-2pJB)
2025/09/20(土) 14:28:17.33ID:OerDkwpVa そっかー
すでに終了してる書き込み先のプロセス(パイプで接続)に書き込んだときのシグナルって、なんだったかな
すでに終了してる書き込み先のプロセス(パイプで接続)に書き込んだときのシグナルって、なんだったかな
27デフォルトの名無しさん (アウアウウー Sa53-2pJB)
2025/09/20(土) 14:31:14.70ID:OerDkwpVa SIGPIPEか
28デフォルトの名無しさん (アウアウウー Sa53-ilUi)
2025/09/20(土) 16:58:37.16ID:VevbIipia 特定の実装でたまたまそうだったからと言って
全ての実装でそうなっているかどうかは別の話
優しくしてね
全ての実装でそうなっているかどうかは別の話
優しくしてね
29デフォルトの名無しさん (ワッチョイ cf2a-V9PH)
2025/09/20(土) 17:25:51.73ID:1eZiY7gC0 霊界通信だな
30デフォルトの名無しさん (ブーイモ MM4f-uyy9)
2025/09/20(土) 17:26:59.16ID:+Sf+AUyNM ID:I8uDgIdj0 このprintfじじい何言おうとしたか忘れたな
31デフォルトの名無しさん (ワッチョイ 0af8-p2ny)
2025/09/21(日) 04:07:46.37ID:Obb0mglL0 内部通報で無理なので犯罪者通報
暗黒状態の量子もつれを生成することに成功:世界初の快挙
公開日2025.09.10 18:30:27 WEDNESDAY
https://nazology.kusuguru.co.jp/archives/184832
>>量子もつれが非常に壊れやすく、外界のノイズ(熱の揺らぎや周囲からの電磁波など)によって簡単に消えてしまうことです。
>>このノイズによる量子もつれの崩壊現象は「デコヒーレンス」と呼ばれ、量子技術が実験室の外で広く実用化されるのを妨げる最大の壁となってきました。
◇
・どうやって地上で行えるのですか?
・ 嵐の中や甘風が強い中での車での走行中などどうやって維持しているのかな
・UFOは重力県内でテレポートしている偽物だろう?
◇
・統合失調症から見て犯人不明で周囲の人は知っているかもしれませんが宇宙人だと名乗っているのとテレポート技術を所持している
・7人殺害した
・お前で埴鎮目だ
・殺害した人野事を晩酌で高笑いをしている
・お前「被害者=統合失調症=24実感365日幻聴などの幻覚あり」を人質に立てこもる
・絶対に殺させる「自殺か殺人かは不明ですがさせる」
・コロな症状を引き起こせる
※など上記の事を話してきた
◇
ここにも愉快犯の犯人組織が居るだろう!
暗黒状態の量子もつれを生成することに成功:世界初の快挙
公開日2025.09.10 18:30:27 WEDNESDAY
https://nazology.kusuguru.co.jp/archives/184832
>>量子もつれが非常に壊れやすく、外界のノイズ(熱の揺らぎや周囲からの電磁波など)によって簡単に消えてしまうことです。
>>このノイズによる量子もつれの崩壊現象は「デコヒーレンス」と呼ばれ、量子技術が実験室の外で広く実用化されるのを妨げる最大の壁となってきました。
◇
・どうやって地上で行えるのですか?
・ 嵐の中や甘風が強い中での車での走行中などどうやって維持しているのかな
・UFOは重力県内でテレポートしている偽物だろう?
◇
・統合失調症から見て犯人不明で周囲の人は知っているかもしれませんが宇宙人だと名乗っているのとテレポート技術を所持している
・7人殺害した
・お前で埴鎮目だ
・殺害した人野事を晩酌で高笑いをしている
・お前「被害者=統合失調症=24実感365日幻聴などの幻覚あり」を人質に立てこもる
・絶対に殺させる「自殺か殺人かは不明ですがさせる」
・コロな症状を引き起こせる
※など上記の事を話してきた
◇
ここにも愉快犯の犯人組織が居るだろう!
32デフォルトの名無しさん (ワッチョイ 07cf-Z3W9)
2025/09/23(火) 07:07:11.79ID:yrK5wSNc0 そもそもprintfなんて初心者しか見ないからなw
33デフォルトの名無しさん (ワッチョイ 6aee-lG8I)
2025/09/23(火) 07:49:44.65ID:qmWEk+ay0 まじかよ20年以上使ってる俺は恥知らずかなんかなのか?
printfファミリーは標準ライブラリではぶっちぎりのイケメンだと思うんだが
何年か前に買ったマイスターシュテックって万年筆にも「snprintf」って名入れしたくらいだし
ちなみに標準ライブラリで次に好きなのはsize_t型とNULLマクロ
printfファミリーは標準ライブラリではぶっちぎりのイケメンだと思うんだが
何年か前に買ったマイスターシュテックって万年筆にも「snprintf」って名入れしたくらいだし
ちなみに標準ライブラリで次に好きなのはsize_t型とNULLマクロ
34デフォルトの名無しさん (ワッチョイ 5301-VfWQ)
2025/09/23(火) 14:22:38.23ID:Opf++eei0 printfはスピートが遅いからなあ
35デフォルトの名無しさん (ワッチョイ 86ef-P6+q)
2025/09/24(水) 12:40:37.19ID:fylTkn+t0 組み込みでも無い限りらprintfで充分だろ
36デフォルトの名無しさん (ワッチョイ 1ac0-IpVF)
2025/09/24(水) 19:27:33.73ID:Z7gG6kHJ0 printfじゃないならなに使うの?
37デフォルトの名無しさん (ワッチョイ 03b1-mXfw)
2025/09/24(水) 20:03:29.17ID:cUnaCE/P0 printf多用する場面ってそんな速度必要か?
テキスト表示のアクションゲームでも作るんか?
テキスト表示のアクションゲームでも作るんか?
38デフォルトの名無しさん (ワッチョイ 46ca-RvFB)
2025/09/24(水) 20:34:19.07ID:EXobIxwL0 ちなgccならputsに置き換え可能なら勝手に置き換える
39デフォルトの名無しさん (ワッチョイ 1e10-d2qd)
2025/09/26(金) 13:37:49.15ID:XlYbxwe30 今時プアなマシン使っているので無い限り
実行速度難敵にする奴いないだろう
実行速度難敵にする奴いないだろう
40デフォルトの名無しさん (ワッチョイ e364-5QMm)
2025/09/26(金) 16:32:57.14ID:ePhQUwKm0 プアなマシンを使っているのでやっぱつれぇわ
41デフォルトの名無しさん (ワッチョイ ffc1-d2qd)
2025/09/26(金) 17:25:52.87ID:jSwTkQnE0 かつてプアだった頃、他の奴が16ビットPC使っている中自分だけ8ビットPC(nec PC8001mk2)使って蔵書管理プログラム書き上げたな。漢字も扱えてたよ。出力はEPSONのMP80というカナ印字ドットインパクト、これの1/2ドット改行隠しコマンド見つけて16ドット漢字出力させてた。漢字ROMからのイメージ取得や展開にアセンブラも使用。実用性は殆どないが、勉強にはなった。
42デフォルトの名無しさん (ワッチョイ a7ae-H/EM)
2025/09/26(金) 17:27:17.64ID:mAe57PPo0 プログラム内にデータ組み込んじゃってて使えないやつだろw
43デフォルトの名無しさん (ワッチョイ ff44-Z3W9)
2025/09/26(金) 18:19:46.34ID:KFYhndY80 今のprintfはコンパイル時にパラメータtypeチェックまでやってて
安心だけど気持ち悪さもあるw
安心だけど気持ち悪さもあるw
44デフォルトの名無しさん (ワッチョイ ffc1-d2qd)
2025/09/26(金) 19:32:39.45ID:jSwTkQnE0 printf(null);
45デフォルトの名無しさん (ワッチョイ 1e2a-ljyC)
2025/09/26(金) 19:46:41.37ID:cwuxLqkb0 $ gcc printf_null.c
printf_null.c: 関数 ‘main’ 内:
printf_null.c:4:10: エラー: ‘null’ が宣言されていません (この関数内での最初の使
用)
4 | printf(null);
| ^~~~
printf_null.c: 関数 ‘main’ 内:
printf_null.c:4:10: エラー: ‘null’ が宣言されていません (この関数内での最初の使
用)
4 | printf(null);
| ^~~~
46デフォルトの名無しさん (ワッチョイ 9536-lTrX)
2025/09/28(日) 12:37:58.28ID:l7keiZEP0 printfに謝れ
47デフォルトの名無しさん (スフッ Sd43-LKjL)
2025/09/30(火) 09:15:55.03ID:RGUapuF/d Mingw の mkdir には
mkdir(path, mode)
mkdir(path)
があるけど
Windowsにmodeが意味ないのはわかるけど
一緒にしといて欲しかった
mkdir(path, mode)
mkdir(path)
があるけど
Windowsにmodeが意味ないのはわかるけど
一緒にしといて欲しかった
48デフォルトの名無しさん (ワッチョイ d9e7-ayY8)
2025/10/12(日) 01:15:00.07ID:DKsy7+ZR0 >>47
mingw系はあまり知らぬのだが…それでも一般論として設計の筋が悪いことはわかる
mingw(or 今流行りはフォークの-64だっけ?)はlinux上でwinターゲット、あるいは(こっちも可能だけど少数派?)win上でlinuxターゲットのバイナリを吐くためのものなので、なおさらそうだろう
たとい無意味なmode引数であれ、プロトタイプを同一にするために受け付けるべきだろう
要らぬのならば捨てよ、互換性が何より優先されることだ
捨てて困るなら独自に解釈して適当なマップしなさい
最小例として
```
int my_mkdir(char const restrict * path, [[maybe_unused]] mode_t mode) {
return mkdir(mode); //mingwのmkdir
}
```
もしmode捨てて困り、アホほど暇なら、独自にmodeを解釈してntfsの同等物へ適切にマップしなさい
そしてその場合でも人が無用に混乱せぬように、その意図を以上のようなラッパでも書きなさい
mingw系はあまり知らぬのだが…それでも一般論として設計の筋が悪いことはわかる
mingw(or 今流行りはフォークの-64だっけ?)はlinux上でwinターゲット、あるいは(こっちも可能だけど少数派?)win上でlinuxターゲットのバイナリを吐くためのものなので、なおさらそうだろう
たとい無意味なmode引数であれ、プロトタイプを同一にするために受け付けるべきだろう
要らぬのならば捨てよ、互換性が何より優先されることだ
捨てて困るなら独自に解釈して適当なマップしなさい
最小例として
```
int my_mkdir(char const restrict * path, [[maybe_unused]] mode_t mode) {
return mkdir(mode); //mingwのmkdir
}
```
もしmode捨てて困り、アホほど暇なら、独自にmodeを解釈してntfsの同等物へ適切にマップしなさい
そしてその場合でも人が無用に混乱せぬように、その意図を以上のようなラッパでも書きなさい
49デフォルトの名無しさん (ワッチョイ 0b3c-ayY8)
2025/10/12(日) 06:33:04.28ID:mEdnxwe/0 そういやmsvcの_mkdirもconst char * pathの1引数だな
>>24
初めに文字数を数えた後(固定ならstrlenでもformat directiveで変わるならsnprintfとかでも)、printfの返り値との差をとり0にならないならば全て正しく書き込めてない
文字列を指すポインタを書き込めた数だけ増分した後に、先に得た差の分だけもう一度書き込む
>>24
初めに文字数を数えた後(固定ならstrlenでもformat directiveで変わるならsnprintfとかでも)、printfの返り値との差をとり0にならないならば全て正しく書き込めてない
文字列を指すポインタを書き込めた数だけ増分した後に、先に得た差の分だけもう一度書き込む
50デフォルトの名無しさん (ワッチョイ 0b3c-ayY8)
2025/10/12(日) 06:48:57.50ID:mEdnxwe/0 もちろん2回以上も失敗しえるからループで回して返り値が0になるまで、あるいはretry回すこと
また負値が出たら当然exit()すること
私はstdarg.hを使って
int printf_ensure(const char restrict * fmt, size_t retry, ...);
のようなプロトタイプにしている
(retryが0ならば無限試行)
速度が問題でない場合、あるいは開発中は全部コレでprintfやputs差し替えたっていい
マクロでトークンprintfをprintf/printf_ensureで切り替えられるようにしておくとなおよい
また負値が出たら当然exit()すること
私はstdarg.hを使って
int printf_ensure(const char restrict * fmt, size_t retry, ...);
のようなプロトタイプにしている
(retryが0ならば無限試行)
速度が問題でない場合、あるいは開発中は全部コレでprintfやputs差し替えたっていい
マクロでトークンprintfをprintf/printf_ensureで切り替えられるようにしておくとなおよい
51デフォルトの名無しさん (ワッチョイ 51da-5Sj8)
2025/10/14(火) 00:04:27.04ID:/oJzs4X00 Cのマクロでテンプレート(ジェネリクス)もどき。
C11以降で使える総称選択(_Generic)はジェネリクスというよりオーバーロード。
やっぱりCにもテンプレート欲しい。
(記憶が確かならC++のテンプレートは関数スコープ限定のマクロみたいな仕組みで、コンパイル時に型決定するのでパフォーマンスに影響しなかったはず)
#include<stdio.h>
#include<stdlib.h>
#define N 5
#define MT int
#define MV int
#define PT int
#define PF "%d,"
void mymap(MV (*)(MT), const MT*, const int, MV*);
void print(const PT*, const int);
MV inc(const MT);
関数の頭文字(または関数名)+(T,V,U)な命名規則で#defineする。
C11以降で使える総称選択(_Generic)はジェネリクスというよりオーバーロード。
やっぱりCにもテンプレート欲しい。
(記憶が確かならC++のテンプレートは関数スコープ限定のマクロみたいな仕組みで、コンパイル時に型決定するのでパフォーマンスに影響しなかったはず)
#include<stdio.h>
#include<stdlib.h>
#define N 5
#define MT int
#define MV int
#define PT int
#define PF "%d,"
void mymap(MV (*)(MT), const MT*, const int, MV*);
void print(const PT*, const int);
MV inc(const MT);
関数の頭文字(または関数名)+(T,V,U)な命名規則で#defineする。
52デフォルトの名無しさん (ワッチョイ 7b97-CBs3)
2025/10/14(火) 01:00:24.48ID:eWh2Zlis0 c++の必要なとこだけ使えばいいだろ
53デフォルトの名無しさん (ワッチョイ 51da-5Sj8)
2025/10/14(火) 07:01:23.65ID:/oJzs4X00 やっぱそうなるよね。
まあ、組み込みとか必ずしもC++があるとは限らない環境でなんちゃってテンプレートの例みたいな感じで。
まあ、組み込みとか必ずしもC++があるとは限らない環境でなんちゃってテンプレートの例みたいな感じで。
54デフォルトの名無しさん (ワッチョイ 8bcf-fkyq)
2025/10/14(火) 07:43:06.49ID:sdOVA3sO0 c++が使えないけど最新のcが使える環境ってのもレアじゃね?
大抵c89、運が良くてc99
大抵c89、運が良くてc99
55はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d132-+CJe)
2025/10/14(火) 09:00:12.91ID:7xcmZphY0 Z80 がターゲットでもモダンな C コンパイラがあるよ。
56デフォルトの名無しさん (ワッチョイ 291a-BKKF)
2025/10/14(火) 09:51:45.01ID:XRQnYg770 マイコン用ならC健在だろ
57デフォルトの名無しさん (ワッチョイ c921-oeTl)
2025/10/14(火) 12:31:26.84ID:bZlqEbcX0 そういう用途ならRust一択
58デフォルトの名無しさん (ワッチョイ 51da-5Sj8)
2025/10/14(火) 17:14:48.06ID:/oJzs4X0059はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d132-kl/1)
2025/10/14(火) 17:59:04.47ID:7xcmZphY0 演算子オーバーロードを使えるように拡張した C 処理系は知ってるけどテンプレートは見たことないなぁ……
色々な機能がお互いに関連するだろうし、テンプレートだけをポンと入れられるようなもんでもないと思う。
C を経由してコンパイルするタイプの言語 (処理系) でパラメトリック多相を使えるものを検討したらどうだろう。
nim あたりなら組み込みシステムにも使えるんじゃないか? 知らんけど。
色々な機能がお互いに関連するだろうし、テンプレートだけをポンと入れられるようなもんでもないと思う。
C を経由してコンパイルするタイプの言語 (処理系) でパラメトリック多相を使えるものを検討したらどうだろう。
nim あたりなら組み込みシステムにも使えるんじゃないか? 知らんけど。
60デフォルトの名無しさん (ワッチョイ 51da-5Sj8)
2025/10/15(水) 07:14:26.88ID:wJCBzpoD0 思えば、C++ない組み込みだったらそもそも浮動小数点数をが無いし、charは文字型と同時に1バイトの整数型だから最悪long型で作れば暗黙的型変換で行けるわ。
組み込みでC++あるならテンプレート+Cで速度も落とさず行ける。
(C++はCより2倍遅い)
とはいえ、仕事だとC++の既存資産を無視するわけにも行かんか。
理論上、密結合なOOPより疎結合な高階関数の方が再利用性高いとはいえ、一から作ったんじゃ開発速度が犠牲になる。
現実はかくも難しい…。
組み込みでC++あるならテンプレート+Cで速度も落とさず行ける。
(C++はCより2倍遅い)
とはいえ、仕事だとC++の既存資産を無視するわけにも行かんか。
理論上、密結合なOOPより疎結合な高階関数の方が再利用性高いとはいえ、一から作ったんじゃ開発速度が犠牲になる。
現実はかくも難しい…。
61デフォルトの名無しさん (ワッチョイ 7b4c-CBs3)
2025/10/15(水) 09:31:18.63ID:fds2kZQR0 cコンパイラしかないようなマイコンなんてコードの規模小さいだろ
余計なことせずに愚直に書いとけ
余計なことせずに愚直に書いとけ
62デフォルトの名無しさん (ササクッテロラ Sp05-hV0x)
2025/10/15(水) 15:50:44.46ID:w9oCtp+dp いまどきのマイコンはpythonだって使えるだろうに
63デフォルトの名無しさん (ワッチョイ d146-V6kF)
2025/10/15(水) 17:37:28.97ID:i/5qI1MW0 メモリー64kBでもいける?
64デフォルトの名無しさん (ワッチョイ 0b02-ayY8)
2025/10/15(水) 18:42:39.89ID:9wU7ax+y0 何百円、あるいは何千円の石の話だよ
一個¥10の石ならまだまだcかアセンブラしか無理だろ
一個¥10の石ならまだまだcかアセンブラしか無理だろ
65デフォルトの名無しさん (ワッチョイ 0b02-ayY8)
2025/10/15(水) 18:45:39.97ID:9wU7ax+y0 まあ趣味で一つプログラムするならなんでもいいけど
ある程度量産するならコスパが十倍-百倍違うのは致命的
ある程度量産するならコスパが十倍-百倍違うのは致命的
66デフォルトの名無しさん (ワッチョイ 51da-5Sj8)
2025/10/15(水) 20:40:36.66ID:wJCBzpoD067デフォルトの名無しさん (ワッチョイ d1d4-V6kF)
2025/10/16(木) 18:01:41.31ID:J2Om8XvC0 我が家みたいだ
68デフォルトの名無しさん (ワッチョイ 7bf0-CBs3)
2025/10/16(木) 18:37:01.53ID:CvxVt5ew0 >>66
そのマイコンの型番教えてくれ
そのマイコンの型番教えてくれ
69デフォルトの名無しさん (ワッチョイ 51da-5Sj8)
2025/10/16(木) 20:29:12.39ID:Aijr1hHS0 マイコンってかマイクロコントローラーだけどPICとかAtmelとかでいっぱい見かけるよ。
1個10円とかのは大体マイクロコントローラー。
秋月電子のストアならデータシートのPDFをDL出来るんで、細かい仕様はそれを見る。
1個10円とかのは大体マイクロコントローラー。
秋月電子のストアならデータシートのPDFをDL出来るんで、細かい仕様はそれを見る。
70デフォルトの名無しさん (ワッチョイ 1920-oeTl)
2025/10/17(金) 00:24:14.63ID:H6PCthuK071デフォルトの名無しさん (ワッチョイ d93b-8Mv9)
2025/10/18(土) 01:03:37.15ID:QXVDdQSx0 >>66
そんなんじゃprintfすら作れないよw
そんなんじゃprintfすら作れないよw
72デフォルトの名無しさん (ワッチョイ d19f-WLnR)
2025/10/18(土) 04:22:07.50ID:dGhvIuNM0 シリアルコンソールもない規模なのにどこにprintfするんだ
73デフォルトの名無しさん (ワッチョイ 7bea-CBs3)
2025/10/18(土) 06:34:34.64ID:14jVJINw0 いまだにprintfデバッグやってるジジイ
74デフォルトの名無しさん (ワッチョイ 7b4d-0CEO)
2025/10/18(土) 11:43:31.92ID:VPIL6AOJ0 > 256B
関数(サブルーチン)1個作って終了だな。
関数(サブルーチン)1個作って終了だな。
75デフォルトの名無しさん (ワッチョイ 0b19-hV0x)
2025/10/18(土) 12:08:07.87ID:BOmFuCmI0 >>63
Cマガの付録のLSI-C試食版ではタイニーモデルは出力できなかったな
Cマガの付録のLSI-C試食版ではタイニーモデルは出力できなかったな
76デフォルトの名無しさん (アウアウウー Sadd-hV0x)
2025/10/18(土) 12:10:03.61ID:ZlX7tru0a メモリが64Kではタイニーも動かないか…
77デフォルトの名無しさん (ワッチョイ 0b02-ayY8)
2025/10/18(土) 12:34:26.68ID:fcM0D1al078デフォルトの名無しさん (ワッチョイ 0b02-ayY8)
2025/10/18(土) 12:40:57.58ID:fcM0D1al079デフォルトの名無しさん (ワッチョイ 8b10-V6kF)
2025/10/18(土) 13:05:23.67ID:VGmkc9k80 量産して売るのか?
80デフォルトの名無しさん (ワッチョイ 0b02-ayY8)
2025/10/18(土) 13:10:13.42ID:fcM0D1al0 いやプロとかしゃなくて同人即売会で売るレベルですはい
それでも百個くらいは要るでしょ
それでも百個くらいは要るでしょ
81デフォルトの名無しさん (ワッチョイ 315f-hV0x)
2025/10/18(土) 14:09:15.39ID:nzcjRHht0 デバッグは、Lチカの有無で地道にやるんだよな
82デフォルトの名無しさん (ワッチョイ f98d-tYC9)
2025/10/19(日) 19:31:28.29ID:+nDAwDri0 >>66
コードセグメントデータセグメントが1kb単位でしか指定できなくて発狂
コードセグメントデータセグメントが1kb単位でしか指定できなくて発狂
83デフォルトの名無しさん (ワッチョイ 3110-bIaP)
2025/11/08(土) 09:43:07.20ID:rVUu3J9Q0 C99はitoa無くなったん? なんで?
84はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-fyY6)
2025/11/08(土) 10:25:48.38ID:Ed4kLbQS085デフォルトの名無しさん (ササクッテロラ Spf1-3Voz)
2025/11/08(土) 10:47:36.79ID:fNGE7Dndp そもそもCで文字列操作する気にならない
86デフォルトの名無しさん (ワッチョイ 819f-Ou1F)
2025/11/08(土) 10:57:45.77ID:sZf9RtQU0 でもUNIXのI/Oは基本バイトストリームで文字列指向だから切り離せないでしょ?
基盤やライブラリがやることだから低レベルに書きたくないんならわかる
基盤やライブラリがやることだから低レベルに書きたくないんならわかる
87デフォルトの名無しさん (ササクッテロラ Spf1-3Voz)
2025/11/08(土) 11:15:17.81ID:fNGE7Dndp C全盛期にインターネットが一般的になってたら
有名なライブラリがその辺りを補完しまくってくれたのかなぁ
有名なライブラリがその辺りを補完しまくってくれたのかなぁ
88デフォルトの名無しさん (ワッチョイ 797b-/c0i)
2025/11/08(土) 12:09:11.14ID:+ABJpypp089デフォルトの名無しさん (ワッチョイ 2e10-a4Xf)
2025/11/08(土) 14:42:52.89ID:05Df+FUf0 スクリプトで処理することも多いし
基本は文字列で扱うな
基本は文字列で扱うな
90デフォルトの名無しさん (ワッチョイ 42ad-bIaP)
2025/11/08(土) 16:40:45.22ID:L8SrJpz20 itoa() というか、数値から文字列への変換となると文字列の長さがどうなるか分からないから消滅したのでは?
かといって sprintf() は健在だが、おすすめは snprintf() だな。(GNUだと asprintf() ってのもあるな)
かといって sprintf() は健在だが、おすすめは snprintf() だな。(GNUだと asprintf() ってのもあるな)
91デフォルトの名無しさん (ワッチョイ 797b-/c0i)
2025/11/08(土) 18:49:14.49ID:+ABJpypp0 sprintfのbuffer*にヌルポを指定するとbufferに書き出さず単に出来上がり文字列の長さだけ返す、
みたいな仕様があったと思ったが、かなり特定環境の話かこれ?
(他関数と勘違いしてるかもだが、思い出せないし、ググッてもよく分からん)
みたいな仕様があったと思ったが、かなり特定環境の話かこれ?
(他関数と勘違いしてるかもだが、思い出せないし、ググッてもよく分からん)
92デフォルトの名無しさん (ワッチョイ c168-rHLw)
2025/11/08(土) 19:24:13.72ID:NSK/JYYK0 snprintfの返り値がそういう動作だから
長さだけがほしいときヌルポじゃなくバッファ長を0にする
manpageを信用するとだいたいは叶うけど昔のSUSv2ではエラーと書いてるね
長さだけがほしいときヌルポじゃなくバッファ長を0にする
manpageを信用するとだいたいは叶うけど昔のSUSv2ではエラーと書いてるね
93デフォルトの名無しさん (ワッチョイ 797b-/c0i)
2025/11/08(土) 20:00:28.59ID:+ABJpypp0 それは多分、推奨が変わって、それに合わせてmanページも書き換えられただけではないかと。
MSにはscprintfという、長さだけを返す関数が用意されている。
(s*printfのbufferがヌルポだとエラー、おそらく型チェックを厳しくする為に分離したのではないかと)
https://learn.microsoft.com/ja-jp/cpp/c-runtime-library/reference/scprintf-scprintf-l-scwprintf-scwprintf-l?view=msvc-170
MSにはscprintfという、長さだけを返す関数が用意されている。
(s*printfのbufferがヌルポだとエラー、おそらく型チェックを厳しくする為に分離したのではないかと)
https://learn.microsoft.com/ja-jp/cpp/c-runtime-library/reference/scprintf-scprintf-l-scwprintf-scwprintf-l?view=msvc-170
94デフォルトの名無しさん (ワッチョイ 9f98-DX0k)
2025/11/09(日) 15:49:06.10ID:BHEHF4AV0 長さって言うと、バイト数か文字数かで悩む
95デフォルトの名無しさん (ササクッテロラ Spf3-7str)
2025/11/09(日) 15:56:50.51ID:avBvNiuDp マルチバイト文字なんてC言語が考慮してるはずが無いだろ
全部外部関数だからなあれら
全部外部関数だからなあれら
96デフォルトの名無しさん (ワッチョイ 9f98-DX0k)
2025/11/09(日) 17:54:10.57ID:BHEHF4AV0 どの範囲が内部関数なんでしょうか?
97デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/09(日) 18:08:54.56ID:rjZkXEAW0 stdio.h等、K&Rに記載されてる範囲じゃね?
(勿論sprintfも記載あり)
(勿論sprintfも記載あり)
98デフォルトの名無しさん (ワッチョイ 1f46-b1F3)
2025/11/09(日) 18:38:57.72ID:1hA+Ej0k0 こういうときK&R持ち出してくる意図がわからん
80年代で頭が止まってるのか愉快犯なのか
80年代で頭が止まってるのか愉快犯なのか
99デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/09(日) 19:57:32.76ID:rjZkXEAW0 俺は80年代で頭が止まってるが、K&Rは今でも名著で読む価値があるのも事実だろ
(というかCが変わって無さ過ぎなだけだが)
Zにはドラゴンボールハラスメントなのかもだが
(というかCが変わって無さ過ぎなだけだが)
Zにはドラゴンボールハラスメントなのかもだが
100デフォルトの名無しさん (ワッチョイ 7f2a-Nex0)
2025/11/09(日) 20:21:54.18ID:ZW4cfheS0 今どきK&Rかよ! てのは昔からいる。超カンタン○○言語なんてのを有り難がるのだけど、なぜか原典の類いには絶対当たらない。
101デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/09(日) 20:36:39.24ID:rjZkXEAW0 得る知識量/文字数、というZ的コスパなら、K&Rに勝る本は他のプログラミング言語含めても無いよな
その分端折りまくりだし、そもそも既にプログラミング出来る人向けに書かれているので、初心者には向かないが
しかし本来は、K&Rに勝る本を誰かが書いて、葬ってやるべきなのだろうけど、
あれ以上エッセンスだけ凝縮するのも無理よねって事で今に至るわけだし
その分端折りまくりだし、そもそも既にプログラミング出来る人向けに書かれているので、初心者には向かないが
しかし本来は、K&Rに勝る本を誰かが書いて、葬ってやるべきなのだろうけど、
あれ以上エッセンスだけ凝縮するのも無理よねって事で今に至るわけだし
102デフォルトの名無しさん (ワッチョイ 1f46-b1F3)
2025/11/09(日) 20:48:05.83ID:1hA+Ej0k0 標準ライブラリの話なのに何とんちんかんなこといってんの
準拠してる規格か処理系そのものに依存するから古典みてもわからんでしょ
当時の知識でもヘッダやライブラリの場所から当たりはつくけどな
準拠してる規格か処理系そのものに依存するから古典みてもわからんでしょ
当時の知識でもヘッダやライブラリの場所から当たりはつくけどな
103デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/09(日) 20:58:39.28ID:rjZkXEAW0104デフォルトの名無しさん (ワッチョイ 9f45-rgYF)
2025/11/09(日) 21:03:11.42ID:LFf9m6Ev0 K&R馬鹿にしてるのもZ連呼してるのも傍から見てたらどっちもアホですわ
105デフォルトの名無しさん (ワッチョイ 1f46-b1F3)
2025/11/09(日) 21:10:40.56ID:1hA+Ej0k0 バカにはしてないむしろ信奉者だし
アホなのはそのとおり
ウソが知識不足からか故意なのか気になっただけ
書けば質問者への気づきにもなるしな
アホなのはそのとおり
ウソが知識不足からか故意なのか気になっただけ
書けば質問者への気づきにもなるしな
106デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/09(日) 21:24:36.18ID:rjZkXEAW0 >>104
だからそういうのは要らねえから、さっさとお前流の>>96に対する回答を書いて勝負すればいいわけ
というかね、完全に脱線するが、
例の非韓三原則「韓国人には、教えない、助けない、関わらない」とか、
Kの法則、「韓国(人)に関わると不幸になる」というの、ありゃ何だろうなと思ってたんだが、
数年前には俺なりに結論が出てしまった
あれはな、連中は、「自分を上げるのではなく、他人を下げる事」しかしないからなんだ
そして、ゆとりやZも同様の傾向があるから、そうならないように意識して注意した方がいい
それはお互い足を引っ張り合ってるだけであって、高める方向ではないから
今回もそうだろ、他人にケチを付けるだけで、自分でよりよい回答を出そうとはしない
だから結果的に、よりよい回答を得られる機会を失い、罵りあう状況を生み出してる
受け方を間違えなければ本来プラスに持っていけた所が、マイナスになってしまってる
ここら辺が、ゆとりやZがコミュ障で困る部分なんだよ
だからお前達は自分達世代だけではマトモに会話出来る場所を持てず、
年上世代が蔓延る5chに寄生するしかなくなってる
その辺もちゃんと自覚した方がいい
5chで偉そうに講釈垂れつつ、裏で必死にググって理論武装しつつ、という俺ら世代の馬鹿共も、
この点はゆとりやZとは正反対で、きちんとプラス方向に寄与してたわけ
だから5chは生き残って来れてるわけでね
>>105
同上。
だからそういうのは要らねえから、さっさとお前流の>>96に対する回答を書いて勝負すればいいわけ
というかね、完全に脱線するが、
例の非韓三原則「韓国人には、教えない、助けない、関わらない」とか、
Kの法則、「韓国(人)に関わると不幸になる」というの、ありゃ何だろうなと思ってたんだが、
数年前には俺なりに結論が出てしまった
あれはな、連中は、「自分を上げるのではなく、他人を下げる事」しかしないからなんだ
そして、ゆとりやZも同様の傾向があるから、そうならないように意識して注意した方がいい
それはお互い足を引っ張り合ってるだけであって、高める方向ではないから
今回もそうだろ、他人にケチを付けるだけで、自分でよりよい回答を出そうとはしない
だから結果的に、よりよい回答を得られる機会を失い、罵りあう状況を生み出してる
受け方を間違えなければ本来プラスに持っていけた所が、マイナスになってしまってる
ここら辺が、ゆとりやZがコミュ障で困る部分なんだよ
だからお前達は自分達世代だけではマトモに会話出来る場所を持てず、
年上世代が蔓延る5chに寄生するしかなくなってる
その辺もちゃんと自覚した方がいい
5chで偉そうに講釈垂れつつ、裏で必死にググって理論武装しつつ、という俺ら世代の馬鹿共も、
この点はゆとりやZとは正反対で、きちんとプラス方向に寄与してたわけ
だから5chは生き残って来れてるわけでね
>>105
同上。
107デフォルトの名無しさん (ワッチョイ 7f94-u/J9)
2025/11/09(日) 21:55:55.88ID:iuqP4JEu0 そもそもCで外部内部関数なんて概念がナンセンスだろ
108デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/09(日) 22:22:11.91ID:rjZkXEAW0 >>107
今回の文脈は、
94: マルチバイト文字ガー
95(≠俺): それらは全部外部関数(≒内部関数はシングルバイト対応のみ)
96: なら内部関数ってどこまで?
なので、馬鹿でなく、正面から乗ってやるなら、お前なりの線引きを答えてどうぞ
質問が無効なので回答しようがない!ってのは、スカしてイケてるつもりの馬鹿がよくやるパターンだ
こいつらも、コミュ的には迷惑なだけ
95の「外部関数」が問題だとするなら、
95よりも分かりやすく、95の代替になる回答を用意するように心掛ければ済むだけ
出来ないのなら、黙っておく方がいい
C言語の仕様として「内部/外部の区別がない」とか、別方向にウンチクを垂れるのならどうぞだが
今回の文脈は、
94: マルチバイト文字ガー
95(≠俺): それらは全部外部関数(≒内部関数はシングルバイト対応のみ)
96: なら内部関数ってどこまで?
なので、馬鹿でなく、正面から乗ってやるなら、お前なりの線引きを答えてどうぞ
質問が無効なので回答しようがない!ってのは、スカしてイケてるつもりの馬鹿がよくやるパターンだ
こいつらも、コミュ的には迷惑なだけ
95の「外部関数」が問題だとするなら、
95よりも分かりやすく、95の代替になる回答を用意するように心掛ければ済むだけ
出来ないのなら、黙っておく方がいい
C言語の仕様として「内部/外部の区別がない」とか、別方向にウンチクを垂れるのならどうぞだが
109デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/10(月) 07:43:17.41ID:zJ1Qzqef0 これだからZは。
>>98は自ら意図的に世代間抗争に持ち込んでいるのに、ケツも拭けないのか
ゆとりZはやはり死ねだな
5chが(俺ら世代にとって)比較的マシな場所なのは、ゆとりZの存在確率が低い事が地味に効いてる
理解出来てない奴の方が多いけどね
世代間抗争も、やりたければやればいいと思うが、せめて勝てる算段を立ててからにしろよと
コミュ障がコミュ障のままなのは、結局の所、コミュ上手になろうともしてないからだ
>>98は自ら意図的に世代間抗争に持ち込んでいるのに、ケツも拭けないのか
ゆとりZはやはり死ねだな
5chが(俺ら世代にとって)比較的マシな場所なのは、ゆとりZの存在確率が低い事が地味に効いてる
理解出来てない奴の方が多いけどね
世代間抗争も、やりたければやればいいと思うが、せめて勝てる算段を立ててからにしろよと
コミュ障がコミュ障のままなのは、結局の所、コミュ上手になろうともしてないからだ
110デフォルトの名無しさん (ワッチョイ ff9e-lDbn)
2025/11/10(月) 11:26:46.51ID:7d+3pm9S0 初老が中年にマウントとるスレ
111デフォルトの名無しさん (ワッチョイ 9f0f-DX0k)
2025/11/10(月) 14:39:59.87ID:JbkrBD5Q0 いくつから中年ですか?
112デフォルトの名無しさん (ワッチョイ ff2a-Nex0)
2025/11/10(月) 15:24:22.95ID:mwBByQv20 switch(年齢) {
case 0 ... 7: return 幼年;
case 8 ... 17: return 少年;
case 18 ... 25: return 青年;
case 26 ... 65: return 中年;
default: return 老年;
}
case 0 ... 7: return 幼年;
case 8 ... 17: return 少年;
case 18 ... 25: return 青年;
case 26 ... 65: return 中年;
default: return 老年;
}
113デフォルトの名無しさん (ワッチョイ 1f10-ECQG)
2025/11/10(月) 15:50:01.90ID:2ChBD2tN0 他言語で”sjisの¥が含まれた全角文字の字化け"で苦しんだ思い出・・・。
114デフォルトの名無しさん (ワッチョイ 9f54-DX0k)
2025/11/10(月) 18:58:50.79ID:JbkrBD5Q0 大概の言語はsjis扱う方法があるはず
115デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/10(月) 20:08:23.10ID:zJ1Qzqef0116デフォルトの名無しさん (ワッチョイ 9f13-DX0k)
2025/11/11(火) 01:27:33.54ID:Ul+ztfon0 LinuxでMicrosoft C拡張が使える様になるらしい
117デフォルトの名無しさん (ワッチョイ ff2a-Nex0)
2025/11/11(火) 08:58:14.69ID:Vfm72xbe0 >>116
わららない。レベルが低くてスマソ
Microsoft C拡張ってこれ?
https://learn.microsoft.com/ja-jp/cpp/build/reference/microsoft-extensions-to-c-and-cpp?view=msvc-170
> C および C++ の Microsoft 拡張機能
Linux 上の MS コンパイラか何かがあるの?
わららない。レベルが低くてスマソ
Microsoft C拡張ってこれ?
https://learn.microsoft.com/ja-jp/cpp/build/reference/microsoft-extensions-to-c-and-cpp?view=msvc-170
> C および C++ の Microsoft 拡張機能
Linux 上の MS コンパイラか何かがあるの?
118デフォルトの名無しさん (アウアウウー Sae3-N4yN)
2025/11/11(火) 14:43:16.54ID:crDtfQHZa ディレクトリを/で分割したいときstrtokで出来そうだけど
\で分割したいときstrtok使うとsjisのとき困りませんか?
文字列じゃなくディレクトリとして扱う標準関数ってどんなのがある?
\で分割したいときstrtok使うとsjisのとき困りませんか?
文字列じゃなくディレクトリとして扱う標準関数ってどんなのがある?
119デフォルトの名無しさん (ワッチョイ ff04-lDbn)
2025/11/11(火) 15:13:06.91ID:fDHsXV5O0 そんなクソプラグラムいつまで作ってんだよ
120デフォルトの名無しさん (ワッチョイ 1f9a-u7ev)
2025/11/11(火) 15:19:43.32ID:ml7LuvJY0 >>118
sjis扱うならそれがマルチバイト文字の一部か1バイト文字かを判定するのが普通では?
sjis扱うならそれがマルチバイト文字の一部か1バイト文字かを判定するのが普通では?
121デフォルトの名無しさん (ワッチョイ 7fad-1O0L)
2025/11/11(火) 17:21:20.49ID:5g+zU5z50 自分はではないけど、ShiftJisで1バイトではなく1文字戻る場合、1バイト目なのか2バイト目で1バイト目と被る部分なのかがわかりにくいよね
122デフォルトの名無しさん (ワッチョイ 7fad-1O0L)
2025/11/11(火) 17:28:31.16ID:5g+zU5z50 自分はではないけど
↓
自分は118ではないけど
↓
自分は118ではないけど
123デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/11(火) 18:20:54.06ID:LOIEr1mz0124デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/11(火) 18:21:45.51ID:LOIEr1mz0 >>121
> 先頭から文字コードの判定をする場合はよいが、
> 後ろから判定をしようとすると、最悪の場合、先頭までたどらないといけないことがある (from wiki)
仕様外(製作時の想定外)だから諦めて、インデックス作るか、16bit固定長やutf8に変換するのが吉かと
> 先頭から文字コードの判定をする場合はよいが、
> 後ろから判定をしようとすると、最悪の場合、先頭までたどらないといけないことがある (from wiki)
仕様外(製作時の想定外)だから諦めて、インデックス作るか、16bit固定長やutf8に変換するのが吉かと
125デフォルトの名無しさん (ワッチョイ 9f5f-7str)
2025/11/12(水) 07:37:37.89ID:xTE5ywXt0 1文字づつ属性タグ付けてから好きな処理すればいい
126はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f32-ob2Q)
2025/11/12(水) 09:44:34.01ID:9DKi0uHD0 >>118
標準関数というのが言語仕様 (規格) にある関数という意味ならディレクトリという概念すら無い。
ファイルを指し示す文字列は単に「ファイル名」としか書いておらず、どういった形式を持つかは規定されない。
ファイルシステムによって独特の概念がある場合もあるし、言語仕様で決めるような筋合いのものではないってことだと思う。
ホスト環境 (OS) のほうでなんらかの機能を提供している場合もあり、たとえば Windows だと shlwapi.h にある名前が Path で始まるやつはパス操作関係の API だ。
標準関数というのが言語仕様 (規格) にある関数という意味ならディレクトリという概念すら無い。
ファイルを指し示す文字列は単に「ファイル名」としか書いておらず、どういった形式を持つかは規定されない。
ファイルシステムによって独特の概念がある場合もあるし、言語仕様で決めるような筋合いのものではないってことだと思う。
ホスト環境 (OS) のほうでなんらかの機能を提供している場合もあり、たとえば Windows だと shlwapi.h にある名前が Path で始まるやつはパス操作関係の API だ。
127デフォルトの名無しさん (ワッチョイ 1f10-ECQG)
2025/11/12(水) 11:47:07.85ID:swftmftO0 DOS時代は文字コードをASCII、JIS/SJISしか知らなかったから
文字列操作は1字2バイトにする関数作って自分で処理してたな。
文字列操作は1字2バイトにする関数作って自分で処理してたな。
128デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/12(水) 12:45:29.14ID:MQmntoo50 それで正しいよ
そもそも118の必要有ったっけ?と思ってfopen見たら、やっぱりフルパス受け付けるじゃん
Cでやるべき事と、やるべきでない(やる意味もなく、やっても無駄に嵌る)事を区別出来てないだけ
そもそも118の必要有ったっけ?と思ってfopen見たら、やっぱりフルパス受け付けるじゃん
Cでやるべき事と、やるべきでない(やる意味もなく、やっても無駄に嵌る)事を区別出来てないだけ
129はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f32-ob2Q)
2025/11/12(水) 13:00:11.37ID:9DKi0uHD0130デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/12(水) 14:04:58.47ID:MQmntoo50 >>129
データ処理(fopen)したいのならディレクトリ区切り文字なんて気にする必要なく、そのままフルパス文字列を全部与えればいい。
だから118の処理をCで自前でやる事自体がナンセンス。
そのコードはその処理系が用意したfopen内に存在している。(か、そもそも必要ないか)
シンボリック/ハードリンク等のファイルシステム固有の件をおいておくとすれば、
ファイルシステムは、フルパスをプライマリキーとしたDBとして抽象化出来る。
そのプライマリキーの正規化や探索方法はDB(システム)側の事情であり、ユーザーが処理するべきではない。
つまり、ユーザー側は、入力されたパス/ファイル名文字列をそのままfopen等システム側に食わせるべきであって、
118の様に、自前で加工するべきではない。
勿論、お前の言うように、C自体にはディレクトリの概念すらないのだから、
Cでexplorerじみた物を作るにしても、「標準関数」ではなく、
例えばWindowsなら.NET等、環境が用意した関数群を使えば最初から何も問題が発生しない。
具体的に言った方が分かりやすいかな?
例えばunix環境だと//は/扱いになるはずだが、この辺も全部ご丁寧に実装していくつもりなのか?
(他に何が有るのかは知らんが、たぶんあるのだろうし)
或いはutfでは毎度言われてるMacの正規化がおかしい件
https://applech2.com/archives/20251106-time-machine-bug-still-unresolved-on-macos-26-1-tahoe.html
この辺も全部引き受けるつもりなのか?
こんな事やり出したら泥沼に嵌るのは間違いないので、118の設計思想にバグがある。
入力文字列そのままでファイルを探索出来ないのなら、エラーを返し、使用者に再入力させる実装の方が一般的に正しい。
(これを綺麗にやるのが例外システムだが、Cには例外がないので、
美しさに拘るなら、ファイルオープンまでは他言語でやって、実処理部分だけCのdllを呼ぶのがいいと思う。
Cしか書きたくないなら、一番近いのはVC++だろうよ)
データ処理(fopen)したいのならディレクトリ区切り文字なんて気にする必要なく、そのままフルパス文字列を全部与えればいい。
だから118の処理をCで自前でやる事自体がナンセンス。
そのコードはその処理系が用意したfopen内に存在している。(か、そもそも必要ないか)
シンボリック/ハードリンク等のファイルシステム固有の件をおいておくとすれば、
ファイルシステムは、フルパスをプライマリキーとしたDBとして抽象化出来る。
そのプライマリキーの正規化や探索方法はDB(システム)側の事情であり、ユーザーが処理するべきではない。
つまり、ユーザー側は、入力されたパス/ファイル名文字列をそのままfopen等システム側に食わせるべきであって、
118の様に、自前で加工するべきではない。
勿論、お前の言うように、C自体にはディレクトリの概念すらないのだから、
Cでexplorerじみた物を作るにしても、「標準関数」ではなく、
例えばWindowsなら.NET等、環境が用意した関数群を使えば最初から何も問題が発生しない。
具体的に言った方が分かりやすいかな?
例えばunix環境だと//は/扱いになるはずだが、この辺も全部ご丁寧に実装していくつもりなのか?
(他に何が有るのかは知らんが、たぶんあるのだろうし)
或いはutfでは毎度言われてるMacの正規化がおかしい件
https://applech2.com/archives/20251106-time-machine-bug-still-unresolved-on-macos-26-1-tahoe.html
この辺も全部引き受けるつもりなのか?
こんな事やり出したら泥沼に嵌るのは間違いないので、118の設計思想にバグがある。
入力文字列そのままでファイルを探索出来ないのなら、エラーを返し、使用者に再入力させる実装の方が一般的に正しい。
(これを綺麗にやるのが例外システムだが、Cには例外がないので、
美しさに拘るなら、ファイルオープンまでは他言語でやって、実処理部分だけCのdllを呼ぶのがいいと思う。
Cしか書きたくないなら、一番近いのはVC++だろうよ)
131デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/12(水) 14:04:58.47ID:MQmntoo50 >>129
データ処理(fopen)したいのならディレクトリ区切り文字なんて気にする必要なく、そのままフルパス文字列を全部与えればいい。
だから118の処理をCで自前でやる事自体がナンセンス。
そのコードはその処理系が用意したfopen内に存在している。(か、そもそも必要ないか)
シンボリック/ハードリンク等のファイルシステム固有の件をおいておくとすれば、
ファイルシステムは、フルパスをプライマリキーとしたDBとして抽象化出来る。
そのプライマリキーの正規化や探索方法はDB(システム)側の事情であり、ユーザーが処理するべきではない。
つまり、ユーザー側は、入力されたパス/ファイル名文字列をそのままfopen等システム側に食わせるべきであって、
118の様に、自前で加工するべきではない。
勿論、お前の言うように、C自体にはディレクトリの概念すらないのだから、
Cでexplorerじみた物を作るにしても、「標準関数」ではなく、
例えばWindowsなら.NET等、環境が用意した関数群を使えば最初から何も問題が発生しない。
具体的に言った方が分かりやすいかな?
例えばunix環境だと//は/扱いになるはずだが、この辺も全部ご丁寧に実装していくつもりなのか?
(他に何が有るのかは知らんが、たぶんあるのだろうし)
或いはutfでは毎度言われてるMacの正規化がおかしい件
https://applech2.com/archives/20251106-time-machine-bug-still-unresolved-on-macos-26-1-tahoe.html
この辺も全部引き受けるつもりなのか?
こんな事やり出したら泥沼に嵌るのは間違いないので、118の設計思想にバグがある。
入力文字列そのままでファイルを探索出来ないのなら、エラーを返し、使用者に再入力させる実装の方が一般的に正しい。
(これを綺麗にやるのが例外システムだが、Cには例外がないので、
美しさに拘るなら、ファイルオープンまでは他言語でやって、実処理部分だけCのdllを呼ぶのがいいと思う。
Cしか書きたくないなら、一番近いのはVC++だろうよ)
データ処理(fopen)したいのならディレクトリ区切り文字なんて気にする必要なく、そのままフルパス文字列を全部与えればいい。
だから118の処理をCで自前でやる事自体がナンセンス。
そのコードはその処理系が用意したfopen内に存在している。(か、そもそも必要ないか)
シンボリック/ハードリンク等のファイルシステム固有の件をおいておくとすれば、
ファイルシステムは、フルパスをプライマリキーとしたDBとして抽象化出来る。
そのプライマリキーの正規化や探索方法はDB(システム)側の事情であり、ユーザーが処理するべきではない。
つまり、ユーザー側は、入力されたパス/ファイル名文字列をそのままfopen等システム側に食わせるべきであって、
118の様に、自前で加工するべきではない。
勿論、お前の言うように、C自体にはディレクトリの概念すらないのだから、
Cでexplorerじみた物を作るにしても、「標準関数」ではなく、
例えばWindowsなら.NET等、環境が用意した関数群を使えば最初から何も問題が発生しない。
具体的に言った方が分かりやすいかな?
例えばunix環境だと//は/扱いになるはずだが、この辺も全部ご丁寧に実装していくつもりなのか?
(他に何が有るのかは知らんが、たぶんあるのだろうし)
或いはutfでは毎度言われてるMacの正規化がおかしい件
https://applech2.com/archives/20251106-time-machine-bug-still-unresolved-on-macos-26-1-tahoe.html
この辺も全部引き受けるつもりなのか?
こんな事やり出したら泥沼に嵌るのは間違いないので、118の設計思想にバグがある。
入力文字列そのままでファイルを探索出来ないのなら、エラーを返し、使用者に再入力させる実装の方が一般的に正しい。
(これを綺麗にやるのが例外システムだが、Cには例外がないので、
美しさに拘るなら、ファイルオープンまでは他言語でやって、実処理部分だけCのdllを呼ぶのがいいと思う。
Cしか書きたくないなら、一番近いのはVC++だろうよ)
132デフォルトの名無しさん (ワッチョイ 1ff9-u7ev)
2025/11/12(水) 15:16:59.28ID:O9mfd+PO0 ディレクトリをぶんかつしたいって話にfopenとか何言ってんだ?とおもいました
133はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f32-ob2Q)
2025/11/12(水) 15:17:06.90ID:9DKi0uHD0 >>130
たとえば指定されたファイルをアーカイブするときにパスからディレクトリ部分は取り除いて格納するだとか、文字列処理でパスを分解したいユースケースはごく普通にある。
アプリケーション作者が自前でやるのが困難なレベルの複雑な仕様なのであればそれは OS の機能かライブラリとして用意されるべき筋合いのことで、常に明示的にユーザが名前を与えるべきというのはナンセンスだ。
たとえば指定されたファイルをアーカイブするときにパスからディレクトリ部分は取り除いて格納するだとか、文字列処理でパスを分解したいユースケースはごく普通にある。
アプリケーション作者が自前でやるのが困難なレベルの複雑な仕様なのであればそれは OS の機能かライブラリとして用意されるべき筋合いのことで、常に明示的にユーザが名前を与えるべきというのはナンセンスだ。
134デフォルトの名無しさん (ワッチョイ 9fd6-qoxc)
2025/11/12(水) 17:31:16.04ID:o8W1SstX0 パス名の分解で、0x5cを調べながらあれこれやったけどな。
135デフォルトの名無しさん (ワッチョイ 1fa5-b1F3)
2025/11/12(水) 23:03:06.47ID:MsLHjcva0 DOSであれこれパス操作するなら
まずスラッシュに正規化するのがいいんでは?
API(INT)はスラッシュでもそのまま通るし
まずスラッシュに正規化するのがいいんでは?
API(INT)はスラッシュでもそのまま通るし
136デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/12(水) 23:53:18.57ID:MQmntoo50 >>133
それはお前が例外/抽象化/隠蔽/MVC等をまるで理解出来てない馬鹿だからだな。
まあ具体的に話をした方がいいようだから、そうしてみよう。
ただその前に、
> 常に明示的にユーザが名前を与えるべきというのはナンセンスだ。
「名前」とは何ぞ?
ユーザーが常に「フルパスを」与えろという意味なら、これもMVCを理解出来てない故の間違いだ。
そこはV(=UI)で補完するべき部分であって、
M(=本体の内部構造)には関わりない。(というより独立/分離している)
ついでに脱線しておくと、お前が典型的だが、Cの連中も不勉強が過ぎるとは思ってる。
馬鹿にされてるWeb系は、実際馬鹿しか居ないのも事実だが、
それでも回るように出来てる=馬鹿でも上手く行くシステムが構成されてて、これは学ぶ価値がある。
Cに引き籠もるのもどうぞ御自由にだが、
現在においてそれは、全然効率的でない、生産性の低いプログラミングに留まっている事を自覚しないと駄目だ。
そして、おそらくそういう連中に対して不満があって、
K&R警察と化したゴミクズ若害ゆとりZ>>98に俺は無駄に噛み付かれた訳だが、とんだとばっちりだ。
98は結局、よりよい回答を出しあう、上方向の競争には参戦せず、
より馬鹿にしあう、下方向の競争しかしなかったわけだから、ゴミクズであることは事実だが、
K&R警察が発生してしまうのは、お前らの問題でもある。
それはお前が例外/抽象化/隠蔽/MVC等をまるで理解出来てない馬鹿だからだな。
まあ具体的に話をした方がいいようだから、そうしてみよう。
ただその前に、
> 常に明示的にユーザが名前を与えるべきというのはナンセンスだ。
「名前」とは何ぞ?
ユーザーが常に「フルパスを」与えろという意味なら、これもMVCを理解出来てない故の間違いだ。
そこはV(=UI)で補完するべき部分であって、
M(=本体の内部構造)には関わりない。(というより独立/分離している)
ついでに脱線しておくと、お前が典型的だが、Cの連中も不勉強が過ぎるとは思ってる。
馬鹿にされてるWeb系は、実際馬鹿しか居ないのも事実だが、
それでも回るように出来てる=馬鹿でも上手く行くシステムが構成されてて、これは学ぶ価値がある。
Cに引き籠もるのもどうぞ御自由にだが、
現在においてそれは、全然効率的でない、生産性の低いプログラミングに留まっている事を自覚しないと駄目だ。
そして、おそらくそういう連中に対して不満があって、
K&R警察と化したゴミクズ若害ゆとりZ>>98に俺は無駄に噛み付かれた訳だが、とんだとばっちりだ。
98は結局、よりよい回答を出しあう、上方向の競争には参戦せず、
より馬鹿にしあう、下方向の競争しかしなかったわけだから、ゴミクズであることは事実だが、
K&R警察が発生してしまうのは、お前らの問題でもある。
137デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/12(水) 23:53:46.82ID:MQmntoo50 さらについでに言うと、string.hが割とゴミなのは広く言われてるが、
strtokについて問題を感じないのなら、間違いなく無知な馬鹿だ。
(俺は仕様を見た瞬間、え?こんなの許されるのか?と思った)
そしてそれで偉そうにしてるのなら、完全に老害だ。
(だから間髪入れずに叩いた>>119はまあ正しい)
strtokの問題点が分からなければ、使い方を書いたサイトがあちこちにあるからググればいい。
ただ、strtok関しては、使い方を解説するのではなく、使用禁止と明言すべきレベル。
初心者向けのつもりな各サイトなら尚更。
それらに書いてない事を追加すると、
俺はstrtokでは生産性が上がらない(=使う意味がない)のが駄目だと思っている。
strtokには必ずラッパが必要で、それは使い方サイトに大体出てるサンプルコードになるが、
どうしてもstrtokを使いたい局面では、
そのサンプルコードのstrtok部分を自前でループし、そのラッパ関数を公開した方がいい。
(strtokは関数内関数に留め、グローバルには公開しない)
こうすれば問題の半分は片づく。
ただそもそもCでディレクトリ分割する意味はなく、そのコードを作るのにかけた時間は全部無駄だ。
そのコードは既に他にもっといい出来なのがあるから、それを使うべき。
strtokについて問題を感じないのなら、間違いなく無知な馬鹿だ。
(俺は仕様を見た瞬間、え?こんなの許されるのか?と思った)
そしてそれで偉そうにしてるのなら、完全に老害だ。
(だから間髪入れずに叩いた>>119はまあ正しい)
strtokの問題点が分からなければ、使い方を書いたサイトがあちこちにあるからググればいい。
ただ、strtok関しては、使い方を解説するのではなく、使用禁止と明言すべきレベル。
初心者向けのつもりな各サイトなら尚更。
それらに書いてない事を追加すると、
俺はstrtokでは生産性が上がらない(=使う意味がない)のが駄目だと思っている。
strtokには必ずラッパが必要で、それは使い方サイトに大体出てるサンプルコードになるが、
どうしてもstrtokを使いたい局面では、
そのサンプルコードのstrtok部分を自前でループし、そのラッパ関数を公開した方がいい。
(strtokは関数内関数に留め、グローバルには公開しない)
こうすれば問題の半分は片づく。
ただそもそもCでディレクトリ分割する意味はなく、そのコードを作るのにかけた時間は全部無駄だ。
そのコードは既に他にもっといい出来なのがあるから、それを使うべき。
138デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/12(水) 23:54:11.21ID:MQmntoo50 で、具体的な話をすると、
> 指定されたファイルをアーカイブするときにパスからディレクトリ部分は取り除いて格納するだとか
こんな事する必要ねえんだよ。
お前は具象レベルでしかプログラミング出来ない馬鹿だから、こうとしか考えられないだけ。
モノリシックにしか作れず、特定環境のファイルしか格納出来ないように、無駄に成るだけだろ。
ほぼ同じ手間であらゆる環境で使える物が出来るというのに。
具体的に言うと、この場合は、
M: 内部アーカイブ
V0: unix用UI
V1: Windows用UI
V2: Web用UI
とかに分ける。これでシステム間の引っ越しも余裕になる。
Mは、文字列(キー)→ファイル(値)が引けるDB/KVSなら何でもいい。
最もお手軽には、高速検索/アクセス機能が欲しければsqlite、
レストア出来ればいいだけならtarのようにグチャッとくっつけただけの物となる。
文字列(キー)には、アーカイブしたときのパスをそのまま記録する。
つまり、フルパスで有ればフルパスを、相対パスなら相対パスを指定する。
M-V間のインタフェースはこの文字列『全体』とする。
> 指定されたファイルをアーカイブするときにパスからディレクトリ部分は取り除いて格納するだとか
こんな事する必要ねえんだよ。
お前は具象レベルでしかプログラミング出来ない馬鹿だから、こうとしか考えられないだけ。
モノリシックにしか作れず、特定環境のファイルしか格納出来ないように、無駄に成るだけだろ。
ほぼ同じ手間であらゆる環境で使える物が出来るというのに。
具体的に言うと、この場合は、
M: 内部アーカイブ
V0: unix用UI
V1: Windows用UI
V2: Web用UI
とかに分ける。これでシステム間の引っ越しも余裕になる。
Mは、文字列(キー)→ファイル(値)が引けるDB/KVSなら何でもいい。
最もお手軽には、高速検索/アクセス機能が欲しければsqlite、
レストア出来ればいいだけならtarのようにグチャッとくっつけただけの物となる。
文字列(キー)には、アーカイブしたときのパスをそのまま記録する。
つまり、フルパスで有ればフルパスを、相対パスなら相対パスを指定する。
M-V間のインタフェースはこの文字列『全体』とする。
139デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/12(水) 23:55:46.80ID:MQmntoo50 ここでおそらく、tarでアーカイブし、ディレクトリ名が重複するので端折る事を想定していると思われるが、
これは間違いだ。『ディレクトリ文字列』ではなく、単純に『文字列』を端折るだけでいい。
つまり、
ファイルシステム上:
./pathA/pathB/hoge.txt
./pathA/pathB/hogehoge.txt
./pathA/pathB/hogehogehoge.txt
はちみつ式tarアーカイブ:(ファイル名先頭に同一『ディレクトリ』かマークする=デリミタ文字を認識しないといけない)
(新)./pathA/pathB/hoge.txt
(同)hogehoge.txt
(同)hogehogehoge.txt
俺式tarアーカイブ:(直前レコードと『文字列が』頭から何文字同じかマークする=デリミタ文字を気にする必要ない)
(0)./pathA/pathB/hoge.txt
(18)hoge.txt
(22)hoge.txt
この例は偶々、俺式の方が圧縮出来るが、実際はこんな都合のいいファイル名並びはほとんど無い。
マークサイズが、はちみつ式はbool、俺式はint(またはshort/char)なので、実際にどちらが小さいかは場合によりけりだろう。
ただポイントは、俺式はファイルのデリミタ文字がMには関係ないところだ。
Mはただの倉庫であって、文字列→中身、が出来れば十分で、外部の仕様には一切依存しない、ということ。
(はちみつ式はデリミタが/であるunix仕様がMに癒着している。とはいえこれが問題になる事はまずないはずだが)
これは間違いだ。『ディレクトリ文字列』ではなく、単純に『文字列』を端折るだけでいい。
つまり、
ファイルシステム上:
./pathA/pathB/hoge.txt
./pathA/pathB/hogehoge.txt
./pathA/pathB/hogehogehoge.txt
はちみつ式tarアーカイブ:(ファイル名先頭に同一『ディレクトリ』かマークする=デリミタ文字を認識しないといけない)
(新)./pathA/pathB/hoge.txt
(同)hogehoge.txt
(同)hogehogehoge.txt
俺式tarアーカイブ:(直前レコードと『文字列が』頭から何文字同じかマークする=デリミタ文字を気にする必要ない)
(0)./pathA/pathB/hoge.txt
(18)hoge.txt
(22)hoge.txt
この例は偶々、俺式の方が圧縮出来るが、実際はこんな都合のいいファイル名並びはほとんど無い。
マークサイズが、はちみつ式はbool、俺式はint(またはshort/char)なので、実際にどちらが小さいかは場合によりけりだろう。
ただポイントは、俺式はファイルのデリミタ文字がMには関係ないところだ。
Mはただの倉庫であって、文字列→中身、が出来れば十分で、外部の仕様には一切依存しない、ということ。
(はちみつ式はデリミタが/であるunix仕様がMに癒着している。とはいえこれが問題になる事はまずないはずだが)
140デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/12(水) 23:59:23.72ID:MQmntoo50 書けない?テスト
141デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 00:02:39.38ID:DM7iFpPI0 あと2投(44行)あるが、規制された?ので、しばらく後に投稿する
142デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 00:14:22.09ID:DM7iFpPI0 うむ、書けんな。まあ>>135は正しいが
143デフォルトの名無しさん (ワッチョイ 1f1c-5yZn)
2025/11/13(木) 07:23:44.03ID:BJCSCSAz0 staticオジサン居る?
カプセル化で、ダイレクトに非staticプロトタイプで関数コールしている?
あるいは、typedef struct { void (*polling)(bool *tick) } Txxx;のように構造体の関数ポインター経由でコーールしている?
InitializeコールしないでNULLポインターをコールすることもあるのが難。
構造体の方がアプリトップレベルのBinderで管理できるので良いように思えるが、いまいち悩むところ。
カプセル化で、ダイレクトに非staticプロトタイプで関数コールしている?
あるいは、typedef struct { void (*polling)(bool *tick) } Txxx;のように構造体の関数ポインター経由でコーールしている?
InitializeコールしないでNULLポインターをコールすることもあるのが難。
構造体の方がアプリトップレベルのBinderで管理できるので良いように思えるが、いまいち悩むところ。
144デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 07:26:01.38ID:DM7iFpPI0 やはり書けないっぽい
行数制限か?
しばらくチマチマ試すが、駄目だったら諦めで
行数制限か?
しばらくチマチマ試すが、駄目だったら諦めで
145デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 07:33:41.70ID:DM7iFpPI0 ここで先述の通り、M-Vインタフェースは文字列『全体』、つまり、
(18)hoge.txt から ./pathA/pathB/hogehoge.txt に戻す部分は、M側に持たせる。
(18)hoge.txt から ./pathA/pathB/hogehoge.txt に戻す部分は、M側に持たせる。
146デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 07:37:32.03ID:DM7iFpPI0 んー、行数ではなく文字数制限か?
しかしバラバラだと読みにくすぎるので、また後日試すわ
しかしバラバラだと読みにくすぎるので、また後日試すわ
147デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 07:59:27.63ID:DM7iFpPI0 Mangoで試して一部バラバラにすれば行けそうなので落とす。内容は以下と同一
https://agree.5ch.net/test/read.cgi/mango/1754986690/92-98
https://agree.5ch.net/test/read.cgi/mango/1754986690/92-98
148デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 08:00:05.36ID:DM7iFpPI0 これにより、M側はsqliteと
149デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 08:00:31.21ID:DM7iFpPI0 交換可能になり、(DB/KVSの場合は上記ファイルシステム上の文字列そのままがキーになる)
150デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 08:00:57.42ID:DM7iFpPI0 アーカイブして戻すだけではなく、ライブファイルシステムとして使えるようになる。
これはsqlite公式でも言っている通り、
> https://sqlite.org/fasterthanfs.html
現在のブロックファイルシステムにおいては最低限4K食うので、小さいファイルが沢山の場合にはsqliteの方が効率がいいから。
(GUIが無いという話はあるが…まあexplorerでzip開けるあの感じがベストだとは思うが)
そしてVだが、順当に考えれば、キー(≒ファイル/パス/URI)については、
V0: unix用UI: 何もしない
V1: Windows用UI: \を/に変えて記録、/を\に変えて戻す(トークン分割ではなく、単なる文字置換)
V2: Web用UI: 何もしない
が妥当だろう。
各Vはそれぞれ使えない文字が異なるので、Mからその文字列が来たときにどう扱うかは各Vに任せる。
これでシステム間もあっさり解決だ。
ポイントは、保存対象が何であれ、Mの中身は同じで、M-Vインタフェースも同じ、ということ。
そして繰り返すが、トークン分割の必要はない。もっと初歩的な、文字置換だけで済む。
これはsqlite公式でも言っている通り、
> https://sqlite.org/fasterthanfs.html
現在のブロックファイルシステムにおいては最低限4K食うので、小さいファイルが沢山の場合にはsqliteの方が効率がいいから。
(GUIが無いという話はあるが…まあexplorerでzip開けるあの感じがベストだとは思うが)
そしてVだが、順当に考えれば、キー(≒ファイル/パス/URI)については、
V0: unix用UI: 何もしない
V1: Windows用UI: \を/に変えて記録、/を\に変えて戻す(トークン分割ではなく、単なる文字置換)
V2: Web用UI: 何もしない
が妥当だろう。
各Vはそれぞれ使えない文字が異なるので、Mからその文字列が来たときにどう扱うかは各Vに任せる。
これでシステム間もあっさり解決だ。
ポイントは、保存対象が何であれ、Mの中身は同じで、M-Vインタフェースも同じ、ということ。
そして繰り返すが、トークン分割の必要はない。もっと初歩的な、文字置換だけで済む。
151デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 08:01:38.94ID:DM7iFpPI0 つまり構成としては、
M(sqlite): sqliteそのままでいい。
M(俺式tar): トークン分割は必要ない。
(18)hoge.txt から ./pathA/pathB/hogehoge.txt に戻す文字列操作は、数えて、concatするだけ。
\の検索も要らない。
であり、Mでの文字列操作は、必要ないか、極単純か、となる。
一方Vは、はっきり言ってCで作る意味がない。(高速/最軽量のCを生かす事は出来ない)
unixならシェルで作ればいいだけ。
sqliteはシェルからそのまま扱えるらしいので、
> sqlite3 データベースファイル名 < スクリプトファイル名
> https://iifx.dev/ja/articles/123001461/sqlite3スクリプトをコマンドラインで華麗に操る方法
find . -print の結果を適当にゴニョゴニョすればまあ行けそう。
Blobをどうやって作るのかは知らんが、多分手段はあるのだろう。(いい加減面倒になってきた)
Windowsでも、powershellで何とかなるんじゃね?駄目なら.NETでいいし。
どのみち、CでVを作る必要はない。
Cで作るのはMだけでよく、Mではなるべく文字列操作をしない、またはしなくて済むように設計する。
V部分は各環境の便利なものを使い、そこでファイル/文字列操作はやってしまう、という事。
というわけで、例外/抽象化/隠蔽/MVC等と言っておきながら、MVCしか説明出来てないが、面倒なのでこの辺で止める。
馬鹿に一々付き合ってても、ネットでは無限に馬鹿が沸くので、キリがない。
お前らが俺以上に手間を掛けたと分かる場合のみ相手するが、おそらくこれはないはず。
そしてこれ以上お前らが馬鹿こいても無視するのでよろしく。
無知のままで居るのもお前らの自由ではあるし、本当にキリがないので。
M(sqlite): sqliteそのままでいい。
M(俺式tar): トークン分割は必要ない。
(18)hoge.txt から ./pathA/pathB/hogehoge.txt に戻す文字列操作は、数えて、concatするだけ。
\の検索も要らない。
であり、Mでの文字列操作は、必要ないか、極単純か、となる。
一方Vは、はっきり言ってCで作る意味がない。(高速/最軽量のCを生かす事は出来ない)
unixならシェルで作ればいいだけ。
sqliteはシェルからそのまま扱えるらしいので、
> sqlite3 データベースファイル名 < スクリプトファイル名
> https://iifx.dev/ja/articles/123001461/sqlite3スクリプトをコマンドラインで華麗に操る方法
find . -print の結果を適当にゴニョゴニョすればまあ行けそう。
Blobをどうやって作るのかは知らんが、多分手段はあるのだろう。(いい加減面倒になってきた)
Windowsでも、powershellで何とかなるんじゃね?駄目なら.NETでいいし。
どのみち、CでVを作る必要はない。
Cで作るのはMだけでよく、Mではなるべく文字列操作をしない、またはしなくて済むように設計する。
V部分は各環境の便利なものを使い、そこでファイル/文字列操作はやってしまう、という事。
というわけで、例外/抽象化/隠蔽/MVC等と言っておきながら、MVCしか説明出来てないが、面倒なのでこの辺で止める。
馬鹿に一々付き合ってても、ネットでは無限に馬鹿が沸くので、キリがない。
お前らが俺以上に手間を掛けたと分かる場合のみ相手するが、おそらくこれはないはず。
そしてこれ以上お前らが馬鹿こいても無視するのでよろしく。
無知のままで居るのもお前らの自由ではあるし、本当にキリがないので。
152デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz)
2025/11/13(木) 08:02:19.41ID:DM7iFpPI0 以上、終わり
153はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f32-jcp5)
2025/11/13(木) 15:04:26.13ID:bJCWdXAy0154デフォルトの名無しさん (ワッチョイ 1fdf-yiAb)
2025/11/13(木) 20:55:40.45ID:FrAYIMEk0155はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f32-jcp5)
2025/11/13(木) 22:45:21.40ID:bJCWdXAy0 >>143
言いたいことがよくわからん (非staticプロトタイプってなんや?) けど私なりに推測するとカプセル化の基本パターンや使い分けが知りたいってこと?
言いたいことがよくわからん (非staticプロトタイプってなんや?) けど私なりに推測するとカプセル化の基本パターンや使い分けが知りたいってこと?
156デフォルトの名無しさん (ブーイモ MM4f-ACTV)
2025/11/14(金) 10:11:22.08ID:j5Ukc9dzM 「モバイルオーダー」悪用、1万円超の弁当代を58円で不正決済…23歳の無職男を容疑で逮捕
決済システムが脆弱すぎだろ?
よくこんな作り方で普及させたな?インド人か?
決済システムが脆弱すぎだろ?
よくこんな作り方で普及させたな?インド人か?
157デフォルトの名無しさん (ワッチョイ ff10-DX0k)
2025/11/14(金) 11:20:09.02ID:H7qd0VM/0 一万円の弁当か、食べてみたい
払う気はないけど
払う気はないけど
158デフォルトの名無しさん (ワッチョイ 1f2f-5yZn)
2025/11/15(土) 03:54:57.59ID:61X/lnkN0 あら C99で空宣言使えなくなった?
typedef enum {} PINSTATE;
typedef struct s_pinobj {
bool(*sequence)(struct s_pinobj * obj);
uint16_t tickcount; // 10ms ticking
PINSTATE state;
.
.
} TXXX;
などと使っていたんだけど、エラーになるようだ。
循環参照対策はどうするんだろ?
typedef enum {} PINSTATE;
typedef struct s_pinobj {
bool(*sequence)(struct s_pinobj * obj);
uint16_t tickcount; // 10ms ticking
PINSTATE state;
.
.
} TXXX;
などと使っていたんだけど、エラーになるようだ。
循環参照対策はどうするんだろ?
159デフォルトの名無しさん (ブーイモ MM4f-ACTV)
2025/11/15(土) 08:31:52.06ID:u+2daHyUM 客→クレジット会社鯖→決済情報→商店
の流れを
客→決済情報→商店
だとよ
つまりクレジット会社鯖でやってる業務をすべてなりすまししてるわけだ
鯖と商店とのやり取りもザルだったってこと
の流れを
客→決済情報→商店
だとよ
つまりクレジット会社鯖でやってる業務をすべてなりすまししてるわけだ
鯖と商店とのやり取りもザルだったってこと
160はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f32-ob2Q)
2025/11/15(土) 11:24:07.72ID:nRXHw60f0 >>158
空宣言というのは enum の列挙子がゼロ個ということを言ってるの?
enum が導入された C89 の時点で列挙子はひとつ以上が必要ということになっていて列挙子がゼロ個で良かった時代は無い。
(出来たとしたら処理系の拡張。)
そして enum の宣言は必ず列挙子のリストを必要としている。
struct のように { } を書かなければ不完全型として宣言されるというようなことはないから前方宣言で名前だけ書いておいて後で中身を定義するということも出来ない。
不完全型の列挙型というものは存在できないってことね。
空宣言というのは enum の列挙子がゼロ個ということを言ってるの?
enum が導入された C89 の時点で列挙子はひとつ以上が必要ということになっていて列挙子がゼロ個で良かった時代は無い。
(出来たとしたら処理系の拡張。)
そして enum の宣言は必ず列挙子のリストを必要としている。
struct のように { } を書かなければ不完全型として宣言されるというようなことはないから前方宣言で名前だけ書いておいて後で中身を定義するということも出来ない。
不完全型の列挙型というものは存在できないってことね。
161デフォルトの名無しさん (ササクッテロラ Spf3-7str)
2025/11/15(土) 11:40:24.78ID:YWAh8Gcip162デフォルトの名無しさん (ワッチョイ 1fc9-ACTV)
2025/11/15(土) 14:39:56.35ID:mkkTDyMO0163デフォルトの名無しさん (ワッチョイ 9f5f-7str)
2025/11/15(土) 15:15:39.55ID:jhUkF2/k0164デフォルトの名無しさん (ワッチョイ 1fc9-ACTV)
2025/11/15(土) 15:38:28.29ID:mkkTDyMO0 例え決済情報を盗まれてもさ、アクセス先がクレジット会社でもないとこからのやつを
なんで正規なものとして受け取るかね?
いろいろおかしい
なんで正規なものとして受け取るかね?
いろいろおかしい
レスを投稿する
ニュース
- 高市総理の周辺「小さな火種が火事になりかけている。早く鎮火しないといけない」 ★2 [Hitzeschleier★]
- 【北京中継】「日本国民はとても友好的」日本訪問予定の中国人は冷静な反応…中国側報道「高市首相は辞任すべき」 [煮卵★]
- 俳優 高岡蒼佑「エジプト出身とかナイジェリア出身とかの人が、日本の代表顔して移民の事とか話してるの見るとなんか違う気がする」 [Anonymous★]
- 中国の複数の旅行社、日本ツアーを中止 政府の訪日自粛要請受け [蚤の市★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★2 [冬月記者★]
- 「台湾も迷惑だと言っている」フジ「ホンマでっか」出演の早大名誉教授が高市首相発言に「日本はやばいことに」 [muffin★]
- 日本人「戦争戦争!銃の撃ち合いでカッコいいぞ!」中国「高市さあ、対日禁輸だけすればわざわざ戦わなくてもこっちの勝ちだぞ?」 [517791167]
- 【悲報】中国人観光客、絶滅へ。中国旅行会社が日本旅行販売停止。中国人はもう二度と遊びに来れません😤高市どーすんのこれ [856698234]
- 【中国】日本向けツアー中止、邦画公開延期。ジャップが中国叩きをしてる間に続々と大きな制裁に向けて動きが加速www [305926466]
- 【実況】博衣こよりのえちえち雀魂1位耐久🧪
- 【悲報】中国「高市は信用できない」G20サミットでの会談予定なし [834922174]
- 【オワタ】中国外務省「李強首相がG20会合中に日本の指導者と会談する予定はない」と発言 [812874503]
