1 名前:デフォルトの名無しさん [2020/09/28(月) 14:41:30.00 ID:QxfbhGyV0.net] !extend:checked:vvvvv:1000:512 (新スレ立ての際上記コマンドを2行書き込んでください) C言語の話題のみ取り扱います C++の話題はC++スレへ 質問には最低限の情報(ソース/コンパイラ/OS)を付ける 数行で収まらないソースは以下を適当に使ってURLを晒す https://paiza.io/ https://ideone.com/ codepad.org/ C11 www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf C99 www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf kikakurui.com/x3/X3010-2003-01.html C FAQ 日本語訳 www.kouno.jp/home/c_faq/ JPCERT C コーディングスタンダード https://www.jpcert.or.jp/sc-rules/ ※前スレ C言語なら俺に聞け 155 https://mevius.5ch.net/test/read.cgi/tech/1589120427/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
684 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 14:01:16.93 ID:N60gZ7990.net] そういう制御込みでコンパイルして吐き出してくれるなら Cの選択肢もあるだろうけど それが期待できないとなると アセンブラしかない ってことになるのかな
685 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 17:35:31.51 ID:6jCnxoTKd.net] >>678 PICでしょ 一番安いヤツはハードウェアスタック2段
686 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 17:36:57.11 ID:6jCnxoTKd.net] >>679 手段は色々あっても ループはループ と思う
687 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 20:45:42.53 ID:gQSND64l0.net] >>679 まあどこかでループは必要だわな >>661 はそういうループはきっちり検証して個々の処理ルーチンではループ禁止っていう話かと
688 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 23:07:06.58 ID:7vi5L3Y30.net] 初心者です 変数に&を付けてメモリのアドレスを表示させるプログラムを実行して(0x7efe61e298d8←こんな感じ?) その後1時間とか経過して別のプログラムでメモリ「0x7efe61e298d8」に格納されたものを表示させることってできるんですかね?
689 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 23:11:59.94 ID:fhlKtwwY0.net] OSが何かにもよるけど 一般論としては出来る。出来るが、 成功するかどうかは分からない
690 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 23:34:48.42 ID:XppLd9do0.net] MS-DOSのTSRか
691 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 23:52:57.86 ID:7vi5L3Y30.net] C言語というよりOS側の問題なんですね ありがとうございます
692 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 05:11:34.57 ID:52TUUvk80.net] >>681 それ、スタックを使って構造化プログラミングを実現した言語であるCを使う利点が一切ないような… 組み込み/マイコン向け言語でスタックを使わず構造化プログラミングを実現するにはcpsスタイルの言語がベストなはず、lisp方言schemeにはそれ向けのサブセット仕様もあるし、ホビー界隈ではそこそこ使われてる模様 (但し主なpc向け実装は、アーキテクチャに合ったスタックによるcps実装が多い、念のため) forthも消えてしまったなあ C換算百行未満でブートストラップ&セルフホスト処理系が書け、OS機能も兼ね、規格にあるライブラリ関数も改変無しコピペで動く移植性の良さ c台頭までは組み込み/マイコン界隈を寡占してたんだが ちゃんとスタック指向&構造化言語だけど、ハードウェアスタックに頼らないので相性がよい 唯一の敗因はlisp以上に深淵なことだな… cは既に国際語になってしまったので、取り敢えず分かるcで書く、ってのがcが使われる唯一の理由だと思う
693 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 05:58:13.87 ID:pfPCg+P40.net] 動的確保なしの32ビットマイコン使って飯食ってるけど、さすがに再起は使わんが、 好きなだけ関数呼び出し深く出来るだけでも恵まれてたんだな。スタックオーバーフローは一応気にしないといかんけど。 ミッションクリティカルなコードなんてゼッテー無理だわw Adaとか使われるんだっけ?と思ったら微妙に廃れ気味なんね。よーしらんけど。
694 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 08:01:19.64 ID:Z02UUfjqK.net] >>684 たぶん意味がない。 今時のOSでは、別々のプログラムからメモリ「0x7efe61e298d8」を参照しても同じ内容にならない。「仮想アドレス」でぐぐれ。 プログラム間で変数をやりとりしたければ、共有メモリを使う方法がある。
695 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 08:05:06.42 ID:c7JCU6ma0.net] 今時のOS,CPUだとアクセスした瞬間に例外発生する
696 名前:はちみつ餃子 mailto:sage [2021/01/28(木) 10:46:55.99 ID:vBYpvnJx0.net] >>684 (現代的なコンピュータアーキテクチャでは) 各プロセスのアドレス空間が独立していて、 あるプロセスから見えているメモリの内容と他のプロセスから見えるそれは別物なんだよ。 他のプロセス (が持っているリソース) にアクセスしたりデバイスをコントロールするには OS に依頼して仲介してもらうという形をとる。 プロセス間でメモリの共有をすることも可能だが、 それもあらかじめ OS に伝えて共有する実体 (物理メモリ) をそれぞれのメモリ空間にマッピングしてもらう形 なので、それを利用するプロセス同士が事前に共有に同意した状態である必要がある。 あるプロセスが自分用に割り当てられたリソース以外にはそう自由にはアクセスできないんだ。 それがセキュリティというものだよ。
697 名前:デフォルトの名無しさん [2021/01/28(木) 11:01:24.92 ID:dNWrUHbO0.net] >>682 毎回リセットして最初から実行するのも君の説ではループの範疇だな
698 名前:デフォルトの名無しさん [2021/01/28(木) 11:03:43.19 ID:dNWrUHbO0.net] >>690 >>692 DLL injection とかしても無理?
699 名前:はちみつ餃子 mailto:sage [2021/01/28(木) 11:57:56.44 ID:vBYpvnJx0.net] >>694 アクセスされる側にとって (普通は) 意図しないものであるには違いないけど、 一応は OS が許可した上で各プロセスにアタッチする形なので ひとつのプロセス内でのことになるから別のプロセスからアクセスするのとは理屈が違うんじゃないかな。 プロセスの独立性は壊れないし、権限が上位のプロセスにはアタッチできないんじゃなかったっけ? まあときどき権限昇格の脆弱性が発見されたりはしてるけど……。
700 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 12:14:49.58 ID:eBfsAdOM0.net] >>684 デバッガでも作りたいのか?
701 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 12:16:47.81 ID:Tpt+oTXId.net] >>693 そうだね ソフトによるリセットなら本質的にはソフトループと変わらない
702 名前: mailto:sage [2021/01/28(木) 19:47:55.90 ID:4gHVOrOA0.net] >>671 クラシック系の耳にはすごく斬新に聞こえますが、世間一般的には簡単な部類に入るのですか、私は井戸の底の蛙だったんですね‥‥
703 名前: mailto:sage [2021/01/28(木) 19:50:41.53 ID:4gHVOrOA0.net] >>686 TSR はロマンで私もキー
704 名前:入れ替えとかいろいろ凝っていた時期があったんたけど、TSR に似たプログラミングって最近はなんですか? [] [ここ壊れてます]
705 名前: mailto:sage [2021/01/28(木) 19:51:53.47 ID:4gHVOrOA0.net] >>692 でも、i386 アーキテクチャの「コールゲート」とかは廃れてしまったんですよね…‥
706 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 20:19:09.21 ID:Sg/ycOHU0.net] WaveToneとかの便利なソフトがあっての
707 名前: mailto:sage [2021/01/28(木) 22:08:52.27 ID:4gHVOrOA0.net] >>701 そのソフトは大昔(win95 の時代)にも開発してくださっていた方がいて便利に浸かっていました‥‥ ---------------------------------------------------------------------------- 【ソフト名】 TonagramView for Win95 Ver.0.3β 【 作成者 】 Zephyr <NCC00723@niftyserve.or.jp> 【登 録 名】 SHIINE03.LZH 【圧縮形式】 LHa 2.55b 【動作環境】 Windows 95 【転 載】 事前の許可が必要 【掲載月日】 1997/08/30 ---------------------------------------------------------------------------- このプログラムは、WAVファイルを周波数解析してtonagram(ピアノロールのような グラフ)を表示するツールです。 耳コピをしていると、どうしてもコードが採れなくて泣きたくなることがよくあり ます。そんなときは、tonagramを調べれば、鳴ってる音を目で見ることができるの で、適当にピックアップしてやれば楽にコードを拾えます。v(^^) 今回、GUI化によりリードアウトカーソルなどの機能が強化されています。 また、解析結果のロード・セーブが可能になりましたので、結果をセーブしておけ ば解析にかかる時間を節約することができます。 ★Ver.0.2βからの改良点 ・待望(?)のGUI化 ロード・セーブ・印刷 リードアウトカーソル 等 ・ピークサーチアルゴリズムの変更(精度より見た目を重視) NCC00723 Zephyr
708 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 00:08:49.78 ID:BmYQVI6m0.net] >>698 斬新に聞こえるかどうかはともかく コード自体は非常に簡単 ちなみに私もクラシック系
709 名前:デフォルトの名無しさん [2021/01/30(土) 12:01:56.26 ID:EWZvTk3zF.net] >>702 404
710 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 19:33:07.61 ID:jQyDM6Cn0.net] enum A { max_value = 0x7fffffffffffffffLL; }; こんなことしても64bitのenumはつくれないんだっけ?
711 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 00:52:02.23 ID:5yr9aQzL0.net] 整数型ならいいらしいから、64bitになるコンパイラがあっても規格違反ではないと思う
712 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 01:29:58.21 ID:OjiuyGRS0.net] infinity 定義されてるだろ?
713 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 07:03:50.51 ID:v6ebtUL10.net] 整数型に?
714 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 07:51:42.98 ID:9cKOvUYE0.net] >>706 処理系依存しないで確実に64bit以上にする方法ってないんだっけ。 ベース型の指定はC++だよなあ。
715 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 08:04:18.96 ID:SoQHgLGL0.net] 64bit整数型がない環境があるんだから 確実に64bit以上なんて無理
716 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 08:15:50.49 ID:v6ebtUL10.net] sizeof max_value gcc, clang: 8 cl: 4
717 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 08:27:26.16 ID:9cKOvUYE0.net] >>710 じゃあ「64bit整数が使える環境で」って条件だとどうだろう?
718 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 09:03:50.04 ID:5yr9aQzL0.net] Cのenumはマクロと大して変わらんのだから、マクロで代用するとか
719 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 09:11:58.71 ID:v6ebtUL10.net] マクロに代わるべく作られたenumがマクロで代用されるとは 無様な・・・
720 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 09:18:04.19 ID:v6ebtUL10.net] 6.7.2.2 Enumeration specifiers 3 The identifiers in an enumerator list are declared as constants that have type int and may appear wherever such are permitted. 6.7.2.2 列挙型指定子 意味規則 列挙子並びの中の識別子は,型int をもつ定数として宣言され,この型の定数が許されるところならばどこに現れてもよい。 はっきり、intと書いてあるね long longになる余地は全くない
721 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 11:57:56.06 ID:vkxM9MCda.net] intとlong longが同一の可能性は残る まぁ普通ではないが 素直にC++でenum classにするのがいいのでは
722 名前:デフォルトの名無しさん [2021/02/01(月) 14:28:14.54 ID:fos4FOVOF.net] enum と enum class って紛らわしいよね
723 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 17:41:32.38 ID:v6ebtUL10.net] enum classは関係ない enum-baseだ
724 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 19:37:32.66 ID:vkxM9MCda.net] >>718 enumのベース型ってenum classじゃなくても出来たのか 勘違いしてたわ
725 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 21:43:21.53 ID:9cKOvUYE0.net] >>715 なるほど、ありがとう。
726 名前:デフォルトの名無しさん [2021/02/02(火) 06:19:12.09 ID:wjKGtX300.net] enumはステート制御で重宝する。
727 名前:デフォルトの名無しさん [2021/02/02(火) 15:29:55.49 ID:gtWVIswm0.net] 質問です。__lsan_disableが期待通りに動きません。 サイト見るとAllocations made between calls to __lsan_disable() and __lsan_enable() will be treated as non-leaks. Disable/enable pairs may be nested.と書いてあったのでプログラム作りました。 しかし__lsan_enable〜__lsan_do_leak_checkもリークチェックされます。原因が分かりません。 #include </usr/lib/gcc/x86_64-linux-gnu/10/include/sanitizer/lsan_interface.h> #include <pthread.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> void* thFunc(void *arg) { __lsan_disable(); sleep(4); fprintf(stderr, "en start\n"); __lsan_enable(); fprintf(stderr, "en end\n"); sleep(4); __lsan_do_leak_check(); exit(-1); } int main() { int rc; pthread_t th; pthread_create(&th, 0, thFunc, 0); for (int i = 0; i < 30000; i++) { sleep(1); int *p = malloc(1); fprintf(stderr, "malloc\n"); } return 0;} よろしくお願いいたします
728 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 08:08:40.40 ID:3ZiqWZ4T0.net] >>712 処理系依存
729 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 11:24:59.43 ID:P1e/f4pz0.net] テキストファイルを読み込む場合、主にfgetsやfgetcでやる方法があると思うのですが調べてみるとmmapを使う方法もあるようなのですがどれを使うのが良いんですかね? やりたいのはhtmlソースの書かれたテキストファイルの簡単な解析です もしくは全く別に有名なライブラリみたいなのがあるんでしょうか?
730 名前:はちみつ餃子 mailto:sage [2021/02/04(木) 12:15:35.04 ID:ttCVH4wp0.net] >>724 大きなファイルに細かなランダムアクセスが発生するときは シークを繰り返すよりも mmap を活用した方が有利になることもあると思うけど、 常識的に考えればひとつの html はせいぜいが数メガ程度だろうし、 凝った管理をしなくても全部メモリに乗るでしょ。
731 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 13:31:56.12 ID:P1e/f4pz0.net] >>725 ファイルサイズで使い分ける感じなんですね ありがとうございます
732 名前:はちみつ餃子 mailto:sage [2021/02/04(木) 13:43:25.23 ID:ttCVH4wp0.net] >>726 処理の内容によってプログラムのデザインには選択肢があって、 ファイルからの読み込みの仕方はそのデザインに付随するという感じ。
733 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 14:20:09.93 ID:jgksMTX2d.net] C言語スレで せいぜい数メガと言っちゃう感覚
734 名前:デフォルトの名無しさん [2021/02/04(木) 14:24:26.67 ID:xGlwnT6u0.net] もう21世紀だからな ここから先は1GBのテキストファイルが普通になる
735 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 07:55:44.29 ID:I+zADhcc0.net] >>728 テキストファイルを読めてhtmlをパースするような機器で今どき数メガも載ってないケースってかなり珍しいだろ
736 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 08:01:49.33 ID:XbPEadHi0.net] せいぜい数メガと言えるようなリッチな環境で C言語でアプリを書く方が珍しいだろ
737 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 08:20:44.95 ID:JqQJ/dMo0.net] >>731 質問者>>724 がやりたいって言ってるんだから、珍しいかどうかなんてどうでもいいだろう
738 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 08:32:27.83 ID:XbPEadHi0.net] せいぜい数メガと言えるようにリッチな環境かどうかなんて >>724 にしかわからないわけだけど で>>731 を考えたらリッチじゃないって考えるのは自然な発想
739 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 08:42:07.98 ID:oeXhrntJ0.net] 「決めつけ」はバグとセキュリティホールの元。
740 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 09:02:30.99 ID:AjJLCZmld.net] スパコンのOSはCで書かれている
741 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 09:20:14.53 ID:I+zADhcc0.net] >>731 ,733 なぜC言語なのかは>>724 に聞いてくれ 少なくとも今どきmmapまで使える環境でメガも乗ってない環境って相当珍しいだろって話な
742 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 12:39:42.10 ID:1XmQmKI8d.net] >>736 >>734
743 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 12:52:09.08 ID:AV0Gp17OM.net] >>737 珍しくないと言うなら実例をあげればいいだけ
744 名前:デフォルトの名無しさん [2021/02/06(土) 10:12:48.76 ID:DFt8vUVO0.net] mmapってUNIX系OSだけでは?他にもあるかも知れないが互換ライブラリ経由でそのOS固有の同機能のやつ呼んでたりしない?(それで良いなら良いんだが)
745 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 10:51:00.80 ID:PohEB++tF.net] 対象をhtmlに限定したのが敗因
746 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 11:26:44.70 ID:EjDQT0l8K.net] >>739 メモリマップトファイル一般を指しての発言じゃないかな、CreateFileMapping()とか含めて。 >>740 たぶんシーケンシャルアクセスで足りるから、read()でええやんってなるよな。
747 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 11:45:50.67 ID:zn5WrP4C0.net] >>739 何が問題なのかよくわからんが?
748 名前:デフォルトの名無しさん [2021/02/22(月) 07:04:45.29 ID:Xbe4DE+80.net] どうやったらループを小さくしたり無くしたり出来るのか教えてほしい。
749 名前:デフォルトの名無しさん mailto:sage [2021/02/22(月) 08:02:42.93 ID:NYs90WT8M.net] べた書き? printf("hello flat!\n"); printf("hello flat!\n"); printf("hello flat!\n");
750 名前:デフォルトの名無しさん mailto:sage [2021/02/22(月) 17:21:30.68 ID:iIDQLaUs0.net] 標準ライブラリにある処理はなるべく標準ライブラリのを使うとか ループをまとめて関数に出すとかでいいんじゃないの? 根本的な解決にはならないかもだけど複雑度は下がる あとはアルゴリズムの改善しかないんやない
751 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 02:48:11.51 ID:VIkkm8/qd.net] >>739 実装は知らんがむしろwinでは頻用すると思う 80'後半くらいに生まれたそろそろ古参なスクリプト言語(Pythonなど)には大体ある スクリプト故に富豪的に全部載せ
752 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 03:04:42.97 ID:VIkkm8/qd.net] >>743 ループ変数をi, j, kとすれば、int ijk(範囲はi*j*k)とまとめればネストレベル3→1にできるよ i = ijk/j/k j = ijk%(j*k)/k k = ijk%kね パフォーマンスの利点
753 名前:烽る mo量子化学計算はナイーブには最低4段のforが要求されるんで、かなり重宝 なんで4段をcollapseしたいけど、他人が初見で解釈するのはちょっと無理強いなので控えてる [] [ここ壊れてます]
754 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 03:15:27.68 ID:VIkkm8/qd.net] いや今書いたのも改めて並べるとmodに慣れていと1分くらい考えるか… 二段は簡潔なのでイディオムとして使って良いと思う i*jを走るループ変数ijに対し、i==ij/j, j==ij%j ネストは半分になるし可読性もよいので、多分ベストプラクティス ネストしたループを全てワンライナーで書けるFortranが羨ましい
755 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 03:42:44.91 ID:1ia+Vnu00.net] divもmodもクソ遅いと思うんですがそれは
756 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 04:31:33.75 ID:VIkkm8/qd.net] >>749 ステップ数で考えてたからそういう視点は無かったかも、精々2倍程度だし見落としてた -o3とかするとベンチ的には速いから最適化とか効いてるんだろうかね?
757 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 04:35:35.49 ID:VIkkm8/qd.net] だからといってわざわざ速い最適化divmod拾ってくるまでの価値も無いし、つまらんハックか 猛省
758 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 08:24:27.89 ID:NtDnGIIYK.net] まあ定数の割り算は掛け算で実装するよな
759 名前:751 mailto:sage [2021/02/23(火) 12:00:01.73 ID:EYNng8zFd.net] >>752 今アセンブリ見てみたら2147...647=2^32-1を引いて頑張ってる様子が見えた!gcc -O3/win 色々パラメータ弄って様子見ようとしたら普通に割り出したので混乱したが、実行時に与えるとフォールバックするよう コンパイル時に定数で与えたらそうするっぽい 勉強になった
760 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 12:21:23.56 ID:1ia+Vnu00.net] 目安でしかないがx86-64ではmulと比べてdivやmodはレイテンシ2倍どころではない場合が多い https://www.agner.org/optimize/instruction_tables.pdf パフォーマンスが重要な場合は除数を定数にするか2の冪にしてシフト/論理積にする
761 名前:デフォルトの名無しさん [2021/02/24(水) 15:46:51.63 ID:/D2VYVJH0.net] ソフトウェア割り込みプログラムは書けるのか
762 名前:デフォルトの名無しさん [2021/02/25(木) 06:12:34.32 ID:R7WVwVFS0.net] >>755 インラインアセンブラ必須かな
763 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 07:07:20.11 ID:bxBNuN1v0.net] 環境次第 組み込み系の処理系だと割り込みハンドラーを書けたり割り込みフラグの制御ができたりするのはよくある
764 名前:デフォルトの名無しさん [2021/02/25(木) 09:55:57.73 ID:R7WVwVFS0.net] >>757 それはC言語仕様には無い特殊な命令。SHのCコンパイラとか。
765 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 19:11:28.17 ID:k63j55rm0.net] VCで作った実行ファイルを cgiファイルに変える方法て わからない? どうしてもc.cgi.exeになって しまう
766 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 19:17:09.21 ID:JLHf2OjdM.net] >>759 どのHTTPサーバか、どんな設定にしてるかにもよるけど 名前だけ変えればおkじゃねーの?
767 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 20:00:24.23 ID:MOr3wCfr0.net] ファイル名変えておいとくだけなんとちゃうの?
768 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 20:06:31.57 ID:ZW7ncKwI0.net] Windows系サーバーだったら、 実行ファイルc.exeをc.cgiにリネームすれば動くはず
769 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 20:47:45.34 ID:yh+1kBamK.net] そもそもCの話じゃないんだが >>759 エクスプローラの表示の設定を「拡張子を表示する」モードにすべし 「拡張子を表示しない」のチェックを外す方式だったかもしれん
770 名前:デフォルトの名無しさん [2021/02/26(金) 03:45:13.89 ID:5d4w5oMJ0.net] >>763 スレチ
771 名前:デフォルトの名無しさん mailto:sage [2021/02/26(金) 06:57:40.05 ID:eCf8RuSVK.net] //何だよ俺のせいかいw //じゃせいぜいCだけででがんばりや #include <stdio.h> int main() { return rename("c.cgi.exe", "c.cgi"); }
772 名前:デフォルトの名無しさん mailto:sage [2021/02/26(金) 08:02:43.73 ID:M2eccXrmd.net] renameってstdio.hだっけ?
773 名前:デフォルトの名無しさん mailto:sage [2021/02/26(金) 09:51:30.74 ID:31AFaQsJ0.net] >>766 stdioじゃよ
774 名前:デフォルトの名無しさん mailto:sage [2021/02/26(金) 12:12:32.73 ID:M2eccXrmd.net] げ、本当だ
775 名前:デフォルトの名無しさん mailto:sage [2021/03/15(月) 16:52:25.12 ID:XyNDIUjTa.net] すみません、質問させてください exturn FUNC(void, define1) 関数名(void) ってなってるのが、関数のプロトタイプ宣言であることは理解できているのですが FUNC()の意味が分からないです define1にはキーワード定義だけされたdefineが入ってます
776 名前:デフォルトの名無しさん mailto:sage [2021/03/15(月) 17:06:32.77 ID:Db4OPSpGM.net] >>769 それはC言語の文法じゃなくて、あなたのプロジェクト固有のマクロなので、同僚に聞くかgrepしてください
777 名前:デフォルトの名無しさん mailto:sage [2021/03/15(月) 17:07:39.42 ID:XyNDIUjTa.net] >>770 ですよねー もう聞くわ
778 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 08:22:50.63 ID:7emEuadh0.net] Cの文法内に収まる FUNC() って 一般C #define FUNC(ret,opt) ret Microsoft系のやつ 呼び出し規約まで対応 #define FUNC(ret,opt) ret opt ぐらいしか想像つかんな それを吸収しようとしてるのかしら?
779 名前:デフォルトの名無しさん [2021/03/19(金) 19:09:51.97 ID:mKZFPhjYM.net] ret opt の記述順を変えなきゃなんないコンパイラ併用でもしてなきゃ 必然性無いよな
780 名前:デフォルトの名無しさん mailto:sage [2021/04/25(日) 18:24:42.50 ID:1rqnmNJD0.net] VS2019を使用してます。 c言語でハッシュテーブルを使いたい場合、 定番のライブラリってありますか? 自作は考えてません。
781 名前:デフォルトの名無しさん mailto:sage [2021/04/25(日) 18:43:09.76 ID:f5CNtQYv0.net] C++ hashクラスを使う C 自作する スキな道を歩もう
782 名前:デフォルトの名無しさん mailto:sage [2021/04/25(日) 19:49:36.36 ID:bD1toMMoM.net] Cにはない 多少は作るに該当するが、GPL汚染気にしないならhlist(list.h)かいっそのことrbtree引っ張ってくるのが楽 hlistは覚えてないがfreeBSDにもlist_headはあったと思うから雑に書いて作れる
783 名前:デフォルトの名無しさん mailto:sage [2021/04/25(日) 20:00:40.49 ID:1rqnmNJD0.net] >>775-776 ありがとうございます。
784 名前:デフォルトの名無しさん mailto:sage [2021/04/26(月) 17:39:11.35 ID:BhPjOTnw0.net] 境界調整について教えて下さい typedef struct stru{ int inta; char ch; double db; } Str; という構造体を作って、 Str st = {10 , 'n' , 5.20}; printf("構造体全体の大きさは %dバイト アドレスは %p \n", sizeof(st) , &st); printf("inta の大きさ %dバイト アドレスは %p 値は %d \n", sizeof(st.inta), &st.inta , st.inta); printf("ch の大きさ %dバイト アドレスは %p 値は %c \n", sizeof(st.ch) , &st.ch , st.ch); printf("db の大きさ %dバイト アドレスは %p 値は %lf \n", sizeof(st.db) , &st.db , st.db); としたところ、 構造体全体の大きさは 16バイト アドレスは 0019FF2C inta の大きさ 4バイト アドレスは 0019FF2C 値は 10 ch の大きさ 1バイト アドレスは 0019FF30 値は n db の大きさ 8バイト アドレスは 0019FF34 値は 5.200000 という結果が得られたんですけど、この中で 0019FF30から1バイト分には'n'という値が入っていて、 0019FF34から8バイト分には5.200000という値が入っているわけですよね? では0019FF31から0019FF34までは何があるの?