• mallocはスレッドセーフか?

    質問 このような場合 malloc() 関数はリエントラントですか? どのように解決するのですか? どこかで読んだのですが、-pthreadでコンパイルすると、mallocがスレッドセーフになるそうです。malloc は ANSI C で、スレッドはそうではないので、私はその実装に依存していることを確信しています。 もし私たちがgccについて話しているならば。 コンパイ

    2023-09-19 08:28:49
  • Cプログラムで日付と時刻の値を取得するには?

    質問内容 このようなものがあります。 char *current_day, *current_time; system("date +%F"); system("date +%T"); 標準出力に現在の曜日と時刻を出力していますが、この出力を取得したり、割り当てたいのは current_day と current_time という変数があり、後でこれらの値を使って何らかの処理

    2023-09-18 17:58:58
  • 'readline/readline.h' ファイルが見つかりません。

    質問 を入れました。 #include "stdio.h" #include <readline/readline.h> #include <readline/history.h> というフラグがあり、私のコンパイラは -lreadline と表示されますが、まだエラーメッセージが表示されます。 fatal error: 'readline

    2023-09-14 13:24:04
  • C言語にアセンブリコードを挿入する方法はありますか?

    質問 昔、ボーランドのDOSコンパイラで、こんなことができたのを覚えています。 asm { mov ax,ex etc etc... } 今、これを行うための半プラットフォーム独立した方法はありますか?私は BIOS 呼び出しを行う必要があるので、asm コードなしでこれを行う方法があった場合、それは私にとって同様に有用です。 どのように解決するのですか? 使用方法

    2023-09-13 18:57:49
  • Windowsで "NUL "という名前のファイルを削除する

    質問 Cygwin でコンパイルされたプログラムを Windows 7 で実行し、出力ファイル名として "NUL"を渡しました。出力を抑制する代わりに、実際にはカレント ディレクトリに "NUL" という名前のファイルが作成されました (どうやら、それは "NUL" を期待しているようです)。(どうやら Windows でも "/dev/null" を期待しているようです。) 今、私はこの

    2023-09-12 11:53:30
  • 2つの大きな整数の乗算時にオーバーフローをキャッチして計算する

    質問 私は、比較的大きな数値を乗算し、その結果を1つまたは複数の整数に格納するための効率的な(オプションとして標準的でエレガント、かつ実装が簡単な)ソリューションを探しています。 例えば、2つの64ビット整数がこのように宣言されているとします。 uint64_t a = xxx, b = yyy; をすると a * b を実行したとき、演算がオーバーフローしたかどうかを検出し

    2023-09-11 13:21:02
  • 配列がポインタに減衰する例外?

    質問 多くの投稿で、"ほとんどの場合、配列名はポインタに崩壊する"と書かれているのを見ました。 私はどのようなケース/式で配列名がその最初の要素へのポインタに減衰しないかを知ることができますか? どのように解決するのですか? もちろんです。 C99では、次の3つの基本的なケースがあります。 の引数であるとき & (address-of)演算子で指定します。

    2023-09-11 11:33:57
  • SIGSEGVをキャッチするシグナルハンドラの書き方は?

    質問 SIGSEGVをキャッチするシグナルハンドラを書きたいのですが、どうすればよいでしょうか。 メモリブロックの読み書きは char *buffer; char *p; char a; int pagesize = 4096; mprotect(buffer,pagesize,PROT_NONE) これは、バッファから始まるメモリのページサイズバイトを、あらゆる読み書きの脅威から

    2023-09-06 20:50:16
  • 「strlen(s1) - strlen(s2)」が0より小さいことはありません。

    質問 現在、文字列の長さを頻繁に比較する必要のあるCプログラムを書いているので、以下のヘルパー関数を書きました。 int strlonger(char *s1, char *s2) { return strlen(s1) - strlen(s2) > 0; } この関数が真を返すことに気づいたのは s1 よりも短い s2 . どなたかこの奇妙な動作を説明してくださ

    2023-09-06 10:43:39
  • C言語のmain()関数の有効なシグネチャは何ですか?

    質問 C言語のmain関数の有効なシグネチャは何ですか?私は知っています。 int main(int argc, char *argv[]) 他に有効なものはありますか? どのように解決するのですか? この C11 規格では、この二つについて明示的に言及しています。 int main(void); int main(int argc, char* argv[]);

    2023-09-02 23:39:40
  • [解決済み] バッファオーバーフローを可能にするgccコンパイラの最適化をオフにする方法

    質問 私は今 宿題の問題 に取り組んでいて、それが動作するためにコンパイラの最適化保護を無効にする必要があります。私は、ubuntu linux 上で gcc 4.4.1 を使っていますが、どのフラグが正しいのかがわかりません。私はそれがアーキテクチャに依存することを理解します - 私のマシンは、32ビットIntelプロセッサで動作します。 ありがとうございます。 どのように

    2023-09-02 12:15:47
  • Objective-Cで2つのネストしたforループから抜け出すにはどうしたらいいですか?

    質問 このように2つのforループを入れ子にしています。 for(...) { for(...) { } } があることは知っています。 break ステートメントがあることは知っています。しかし、それが両方のループを壊すのか、それともそれが呼び出されたループだけを壊すのかについて混乱しています。私はそれがより多くの回を反復する意味がないことを確認するとすぐに両方

    2023-08-31 17:31:06
  • scanfのデメリット

    疑問点 のデメリットを知りたいのですが。 scanf() . 多くのサイトでは scanf を使用すると、バッファオーバーフローが発生する可能性があると書かれています。この理由は何でしょうか?他に scanf ? どのように解決するのですか? scanfの問題点は、(最低でも)以下の通りです。 を使って %s を使用してユーザーから文字列を取得するため、文字列がバ

    2023-08-31 02:14:30
  • 関数宣言とプロトタイプの代替(K&R)C構文

    質問 これのどこが便利なのか C 構文 - 'K&R'スタイルの関数宣言を使用すること? int func (p, p2) void* p; int p2; { return 0; } Visual Studios 2010betaで書けました。 // yes, the arguments are flipped void f() {

    2023-08-30 18:37:05
  • C バイナリーツリーをコンソールに「描画」する方法【終了しました

    質問 終了しました。 この質問には デバッグの詳細 . 現在、回答は受け付けていません。 この質問を改善したいですか? 質問を更新して、それが オントピック になるように更新します。 終了 7

    2023-08-30 11:40:04
  • C言語のファイル終端(EOF)

    質問 現在、Ritchie & KernighanのC Programming Languageという本を読んでいます。でのEOFの使い方について、かなり混乱しています。 getchar() 関数のEOFの使い方についてかなり混乱しています。 まず、なぜEOFの値が-1なのか、そしてなぜ getchar()!=EOF 私の質問で申し訳ありませんが、私は本当に理解していません

    2023-08-30 08:37:14
  • GCCがビジーな待機ループを最適化するのを防ぐにはどうしたらよいか?

    質問 Atmel AVRマイクロコントローラ用のCコードファームウェアを書きたいと思っています。GCCを使用してコンパイルするつもりです。また、私はコンパイラの最適化を有効にしたいと思います ( -Os または -O2 ) を有効にしない理由はありませんし、おそらく手動でアセンブリを記述するよりもずっと速く、より良いアセンブリを生成するでしょうから。 しかし、私は最適化されないコード

    2023-08-28 20:56:06
  • C言語でmain()なしのプログラムをコンパイルして実行する

    質問 以下のプログラムを main() 関数が C . 以下のコマンドでプログラムをコンパイルしてみました。 gcc -nostartfiles nomain.c そして、コンパイラは警告を出します。 /usr/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000400340

    2023-08-28 12:50:22
  • なぜ%dはIntegerの略なのですか?

    質問 生産的でないことは承知していますが、以下のフォーマットコードをすべて記憶する方法を探しています。 printf を呼び出します。 %s , %p , %f はすべて明白ですが、どこが %d はどこから来るのかがわからない。は %i はすでに他の何かによって取られていますか? どのように解決するのですか? "の略です。 10進数 10進数)であり、intege

    2023-08-26 21:14:39
  • Linuxでgetch()・getche()に相当するものは何ですか?

    質問 Linuxでconio.hに相当するヘッダーファイルが見つかりません。 のオプションはありますか? getch() &です。 getche() という関数がLinuxで使えるようになりませんか? スイッチケースベースメニューを作りたいのですが、ユーザーが1つのキー&を押すだけで選択肢を与え、処理を先に進めたいのです。私は、ユーザーが選択肢を押した後にENTE

    2023-08-26 18:06:46