C言語なら俺に聞け 164 (164レス)
C言語なら俺に聞け 164 http://mevius.5ch.net/test/read.cgi/tech/1753252201/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
138: デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz) [sage] 2025/11/12(水) 23:54:11.21 ID:MQmntoo50 で、具体的な話をすると、 > 指定されたファイルをアーカイブするときにパスからディレクトリ部分は取り除いて格納するだとか こんな事する必要ねえんだよ。 お前は具象レベルでしかプログラミング出来ない馬鹿だから、こうとしか考えられないだけ。 モノリシックにしか作れず、特定環境のファイルしか格納出来ないように、無駄に成るだけだろ。 ほぼ同じ手間であらゆる環境で使える物が出来るというのに。 具体的に言うと、この場合は、 M: 内部アーカイブ V0: unix用UI V1: Windows用UI V2: Web用UI とかに分ける。これでシステム間の引っ越しも余裕になる。 Mは、文字列(キー)→ファイル(値)が引けるDB/KVSなら何でもいい。 最もお手軽には、高速検索/アクセス機能が欲しければsqlite、 レストア出来ればいいだけならtarのようにグチャッとくっつけただけの物となる。 文字列(キー)には、アーカイブしたときのパスをそのまま記録する。 つまり、フルパスで有ればフルパスを、相対パスなら相対パスを指定する。 M-V間のインタフェースはこの文字列『全体』とする。 http://mevius.5ch.net/test/read.cgi/tech/1753252201/138
139: デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz) [sage] 2025/11/12(水) 23:55:46.80 ID: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に癒着している。とはいえこれが問題になる事はまずないはずだが) http://mevius.5ch.net/test/read.cgi/tech/1753252201/139
140: デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz) [sage] 2025/11/12(水) 23:59:23.72 ID:MQmntoo50 書けない?テスト http://mevius.5ch.net/test/read.cgi/tech/1753252201/140
141: デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz) [sage] 2025/11/13(木) 00:02:39.38 ID:DM7iFpPI0 あと2投(44行)あるが、規制された?ので、しばらく後に投稿する http://mevius.5ch.net/test/read.cgi/tech/1753252201/141
142: デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz) [sage] 2025/11/13(木) 00:14:22.09 ID:DM7iFpPI0 うむ、書けんな。まあ>>135は正しいが http://mevius.5ch.net/test/read.cgi/tech/1753252201/142
143: デフォルトの名無しさん (ワッチョイ 1f1c-5yZn) [] 2025/11/13(木) 07:23:44.03 ID:BJCSCSAz0 staticオジサン居る? カプセル化で、ダイレクトに非staticプロトタイプで関数コールしている? あるいは、typedef struct { void (*polling)(bool *tick) } Txxx;のように構造体の関数ポインター経由でコーールしている? InitializeコールしないでNULLポインターをコールすることもあるのが難。 構造体の方がアプリトップレベルのBinderで管理できるので良いように思えるが、いまいち悩むところ。 http://mevius.5ch.net/test/read.cgi/tech/1753252201/143
144: デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz) [sage] 2025/11/13(木) 07:26:01.38 ID:DM7iFpPI0 やはり書けないっぽい 行数制限か? しばらくチマチマ試すが、駄目だったら諦めで http://mevius.5ch.net/test/read.cgi/tech/1753252201/144
145: デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz) [sage] 2025/11/13(木) 07:33:41.70 ID:DM7iFpPI0 ここで先述の通り、M-Vインタフェースは文字列『全体』、つまり、 (18)hoge.txt から ./pathA/pathB/hogehoge.txt に戻す部分は、M側に持たせる。 http://mevius.5ch.net/test/read.cgi/tech/1753252201/145
146: デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz) [sage] 2025/11/13(木) 07:37:32.03 ID:DM7iFpPI0 んー、行数ではなく文字数制限か? しかしバラバラだと読みにくすぎるので、また後日試すわ http://mevius.5ch.net/test/read.cgi/tech/1753252201/146
147: デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz) [sage] 2025/11/13(木) 07:59:27.63 ID:DM7iFpPI0 Mangoで試して一部バラバラにすれば行けそうなので落とす。内容は以下と同一 https://agree.5ch.net/test/read.cgi/mango/1754986690/92-98 http://mevius.5ch.net/test/read.cgi/tech/1753252201/147
148: デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz) [sage] 2025/11/13(木) 08:00:05.36 ID:DM7iFpPI0 これにより、M側はsqliteと http://mevius.5ch.net/test/read.cgi/tech/1753252201/148
149: デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz) [sage] 2025/11/13(木) 08:00:31.21 ID:DM7iFpPI0 交換可能になり、(DB/KVSの場合は上記ファイルシステム上の文字列そのままがキーになる) http://mevius.5ch.net/test/read.cgi/tech/1753252201/149
150: デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz) [sage] 2025/11/13(木) 08:00:57.42 ID: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インタフェースも同じ、ということ。 そして繰り返すが、トークン分割の必要はない。もっと初歩的な、文字置換だけで済む。 http://mevius.5ch.net/test/read.cgi/tech/1753252201/150
151: デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz) [sage] 2025/11/13(木) 08:01:38.94 ID: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しか説明出来てないが、面倒なのでこの辺で止める。 馬鹿に一々付き合ってても、ネットでは無限に馬鹿が沸くので、キリがない。 お前らが俺以上に手間を掛けたと分かる場合のみ相手するが、おそらくこれはないはず。 そしてこれ以上お前らが馬鹿こいても無視するのでよろしく。 無知のままで居るのもお前らの自由ではあるし、本当にキリがないので。 http://mevius.5ch.net/test/read.cgi/tech/1753252201/151
152: デフォルトの名無しさん (ワッチョイ 1f7b-Y7Iz) [sage] 2025/11/13(木) 08:02:19.41 ID:DM7iFpPI0 以上、終わり http://mevius.5ch.net/test/read.cgi/tech/1753252201/152
153: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f32-jcp5) [sage] 2025/11/13(木) 15:04:26.13 ID:bJCWdXAy0 >>136 支離滅裂で何ひとつ伝わっていないとだけ言っておく。 意味がわからないのでこれ以上は反応しない。 http://mevius.5ch.net/test/read.cgi/tech/1753252201/153
154: デフォルトの名無しさん (ワッチョイ 1fdf-yiAb) [sage] 2025/11/13(木) 20:55:40.45 ID:FrAYIMEk0 >>153 俺が新しく展開した話に対し、どう捉え、どう振る舞うかはお前の自由だ。 ただ、不十分であれ、俺はお前の質問/議論に対応しようとしたのだから、 お前も俺の質問、再掲するが以下には、同程度の対応をする義務はあると思うがな。 回答しないのなら、俺も今後はお前の質問>>129に対しての回答>>130すらも遠慮させて貰う。 >>133 ただその前に、 > 常に明示的にユーザが名前を与えるべきというのはナンセンスだ。 「名前」とは何ぞ? http://mevius.5ch.net/test/read.cgi/tech/1753252201/154
155: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f32-jcp5) [sage] 2025/11/13(木) 22:45:21.40 ID:bJCWdXAy0 >>143 言いたいことがよくわからん (非staticプロトタイプってなんや?) けど私なりに推測するとカプセル化の基本パターンや使い分けが知りたいってこと? http://mevius.5ch.net/test/read.cgi/tech/1753252201/155
156: デフォルトの名無しさん (ブーイモ MM4f-ACTV) [] 2025/11/14(金) 10:11:22.08 ID:j5Ukc9dzM 「モバイルオーダー」悪用、1万円超の弁当代を58円で不正決済…23歳の無職男を容疑で逮捕 決済システムが脆弱すぎだろ? よくこんな作り方で普及させたな?インド人か? http://mevius.5ch.net/test/read.cgi/tech/1753252201/156
157: デフォルトの名無しさん (ワッチョイ ff10-DX0k) [sage] 2025/11/14(金) 11:20:09.02 ID:H7qd0VM/0 一万円の弁当か、食べてみたい 払う気はないけど http://mevius.5ch.net/test/read.cgi/tech/1753252201/157
158: デフォルトの名無しさん (ワッチョイ 1f2f-5yZn) [] 2025/11/15(土) 03:54:57.59 ID:61X/lnkN0 あら C99で空宣言使えなくなった? typedef enum {} PINSTATE; typedef struct s_pinobj { bool(*sequence)(struct s_pinobj * obj); uint16_t tickcount; // 10ms ticking PINSTATE state; . . } TXXX; などと使っていたんだけど、エラーになるようだ。 循環参照対策はどうするんだろ? http://mevius.5ch.net/test/read.cgi/tech/1753252201/158
159: デフォルトの名無しさん (ブーイモ MM4f-ACTV) [] 2025/11/15(土) 08:31:52.06 ID:u+2daHyUM 客→クレジット会社鯖→決済情報→商店 の流れを 客→決済情報→商店 だとよ つまりクレジット会社鯖でやってる業務をすべてなりすまししてるわけだ 鯖と商店とのやり取りもザルだったってこと http://mevius.5ch.net/test/read.cgi/tech/1753252201/159
160: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f32-ob2Q) [sage] 2025/11/15(土) 11:24:07.72 ID:nRXHw60f0 >>158 空宣言というのは enum の列挙子がゼロ個ということを言ってるの? enum が導入された C89 の時点で列挙子はひとつ以上が必要ということになっていて列挙子がゼロ個で良かった時代は無い。 (出来たとしたら処理系の拡張。) そして enum の宣言は必ず列挙子のリストを必要としている。 struct のように { } を書かなければ不完全型として宣言されるというようなことはないから前方宣言で名前だけ書いておいて後で中身を定義するということも出来ない。 不完全型の列挙型というものは存在できないってことね。 http://mevius.5ch.net/test/read.cgi/tech/1753252201/160
161: デフォルトの名無しさん (ササクッテロラ Spf3-7str) [sage] 2025/11/15(土) 11:40:24.78 ID:YWAh8Gcip >>159 普通は後にこんな流れが加わってるはず 商店→クレジット会社→決済情報コンペア→決済確認→商店→決済完了 http://mevius.5ch.net/test/read.cgi/tech/1753252201/161
162: デフォルトの名無しさん (ワッチョイ 1fc9-ACTV) [] 2025/11/15(土) 14:39:56.35 ID:mkkTDyMO0 >>161 そうなってないから決済が完了し、商品が届けられて犯罪成立しちゃってる あとになって入金が合わずに発覚しただけだからなぁ http://mevius.5ch.net/test/read.cgi/tech/1753252201/162
163: デフォルトの名無しさん (ワッチョイ 9f5f-7str) [sage] 2025/11/15(土) 15:15:39.55 ID:jhUkF2/k0 >>162 システム考えた奴、頭悪いのかなぁ? 暗号化とか過信したのかなぁ? http://mevius.5ch.net/test/read.cgi/tech/1753252201/163
164: デフォルトの名無しさん (ワッチョイ 1fc9-ACTV) [] 2025/11/15(土) 15:38:28.29 ID:mkkTDyMO0 例え決済情報を盗まれてもさ、アクセス先がクレジット会社でもないとこからのやつを なんで正規なものとして受け取るかね? いろいろおかしい http://mevius.5ch.net/test/read.cgi/tech/1753252201/164
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.007s