• LinuxでインターフェースのIPアドレスを取得する

    質問 どうすれば IPv4 のアドレスを得るにはどうしたらよいでしょうか? 例えば、私はeth0に割り当てられたIPアドレス(もしあれば)を取得したいと思います。 どのように解決するのですか? これを試してみてください。 #include <stdio.h> #include <unistd.h> #include <string.h&gt

    2024-01-10 11:44:32
  • 配列型とmallocで確保された配列の違い

    疑問点 今日、私は友人のCコードを手伝っていたのですが、いくつかの奇妙な動作を発見し、それがなぜ起こっているのか彼に説明することができませんでした。私たちは整数のリストを含むTSVファイルを持っていて、その中に int という行があります。最初の行はリストが持っている行数でした。 また、非常に単純な "readfile" を持つ c ファイルがありました。最初の行は、読み込まれた

    2023-12-19 13:22:41
  • コンパイル前にC言語のソースファイルを連結しないのはなぜですか?重複

    質問 この質問はすでにここに回答があります : #すべての .cpp ファイルを単一のコンパイル単位に含めるか? (6つの回答) unity

    2023-12-17 05:57:21
  • C言語で配列を参照渡しする?

    質問 C言語で構造体の配列を参照渡しする方法を教えてください。 例として struct Coordinate { int X; int Y; }; SomeMethod(Coordinate *Coordinates[]){ //Do Something with the array } int main(){ Coordinate Coordinates[1

    2023-12-09 18:53:57
  • プリプロセッサー・トークンを文字列に変換する

    質問 プリプロセッサー・トークンを文字列に変換する方法を探しています。 具体的には、私はどこかに持っています。 #define MAX_LEN 16 で、バッファオーバーランを防ぐために使いたい。 char val[MAX_LEN+1]; // room for \0 sscanf(buf, "%"MAX_LEN"s", val); 同じことを実現する他の方法にも興味があ

    2023-12-09 15:49:55
  • C言語における配列の返送不可能性とは、実際にはどのような意味なのでしょうか?

    質問 C言語が配列を返せないといういつもの質問を再現するのではなく、もう少し深く掘り下げてみたいのです。 こんなことはできません。 char f(void)[8] { char ret; // ...fill... return ret; } int main(int argc, char ** argv) { char obj_a[10];

    2023-12-09 01:09:37
  • CプログラムでXcodeのコマンドライン引数を与える

    質問 XcodeでC言語の課題を解いているのですが、そのプログラムの中で、プログラムを実行するときにコマンドライン引数を与えなければなりません、そのために私はこのようにユーザーターミナルを使用しなければなりません。 ./a.out myfirstCommand mySecondCommand 私は、ターミナルに行く代わりに、xcodeの中でこの種のコマンドを与えることが可能かどうか疑

    2023-12-08 18:16:37
  • NULLポインタの参照を解除する」とは、具体的にどのようなことですか?

    質問 私はC言語の全くの初心者ですが、大学の授業中に、しばしばNULLポインタの参照解除に言及するコード内のコメントに出会いました。 私は C# のバックグラウンドを持っており、これは .Net で取得する "NullReferenceException" に似ているかもしれないと感じていましたが、今私は真剣に疑問を持っています。 どなたか、これが何であり、なぜ悪いのか、素人の私に正確に

    2023-12-01 22:21:12
  • Linuxカーネル。システムコールフッキングの例

    質問 システムコールテーブルをフックするデモとして、簡単なテストコードを書こうとしています。 2.6 では "sys_call_table" はもはやエクスポートされないので、私は System.map ファイルからアドレスを取得しており、それが正しいことがわかります (私が見つけたアドレスのメモリを見ると、システムコールへのポインタが見えます)。 しかし、このテーブルを変更しようと

    2023-11-24 14:04:57
  • long intのサイズは常に4バイトと考えていいのでしょうか?

    質問 常に long int (の同義語であると理解しています)。 long ) は 4 のバイトですか? に頼っていいのでしょうか? もしそうでなければ、POSIXベースのOSではそうなる可能性がありますか? どのように解決するのですか? 標準では、以下のような整数型の正確なサイズについては何も述べていません。 char . 典型的には long は、32 ビッ

    2023-11-24 03:04:30
  • ディレクトリが存在するかどうかを確認するにはどうすればよいですか?

    質問 LinuxでC言語でディレクトリが存在するかどうかを確認するにはどうすればよいですか? どのように解決するのですか? あなたは opendir() を指定し ENOENT == errno を失敗時に確認します。 #include <dirent.h> #include <errno.h> DIR* dir = opendir("mydi

    2023-11-19 16:03:39
  • ピュアCでRAIIを実装する?

    質問 以下のような実装は可能でしょうか? RAII を純粋なC言語で実装することは可能でしょうか? まともな方法では不可能だと思いますが、ある種の汚いトリックを使えば可能かもしれません。標準の free 関数をオーバーロードすることが思い浮かびます。あるいは、関数が戻ったときに、何らかの方法でリソースを解放する他の関数を呼び出すように、スタック上のリターンアドレスを上書きするこ

    2023-11-19 07:10:20
  • NULLは常に偽ですか?

    質問 と考えてもよいのでしょうか? NULL は常にCでfalseに変換されると考えてよいでしょうか? void *somePtr = NULL; if (!somePtr) { /* This will always be executed? */ } の値に対する明示的なチェックが必要でしょうか。 NULL の値に対して明示的なチェックを行うべきでしょうか? どのよ

    2023-11-16 22:58:44
  • C言語における「参照」「非参照」の意味

    質問 インターネットでいろいろなことを読みましたが、サイトによって書いてあることが違うので、混乱してしまいました。 私が読んだのは * 参照演算子と & dereferencing演算子、あるいは、参照とはポインタを変数に指し示すことで、dereferencingとはポインタが指し示す変数の値にアクセスすることである。だから混乱してしまった。 参照と非参照について、

    2023-11-14 02:54:55
  • 長さが不明な入力文字列を読み取るには?

    質問 単語の長さがわからないと、書けません。 char m[6]; , の長さは10か20くらいでしょうか。 どうすれば scanf を使ってキーボードから入力を得ることができますか? #include <stdio.h> int main(void) { char m[6]; printf("please input a string with l

    2023-11-13 21:34:58
  • C17とは、どのような言語で、どのような変化があったのでしょうか。

    質問内容 GCC 8についてのニュースをチェックしていたとき、私は を見ました。 を見ると、2017年版のC言語(C++17ではなく、本当にC17)のサポートが追加されていました。しかし、インターネット上でそれに関する情報を見つけることができません。 それは C11 のような新しい ISO バージョンですか、それとも単に GCC チームが彼らのコンパイラのいくつかの修正のために

    2023-10-29 19:36:26
  • なぜC言語ではchar配列の1番目の要素に "the \0" を定義するのですか?

    質問 私が読むとき 青 のソースコードを読むと、よく char 配列がこのように定義されているのを見かけます。 // bluez/android/sco-msg.h static const char BLUEZ_SCO_SK_PATH[] = "\0bluez_sco_socket"; 最初の要素を \0 ? どのように解決するのですか? あなたの特定のケース

    2023-10-24 11:56:34
  • argc はオーバーフローしますか?

    質問 SOの中をさまよっていたら この質問 . そして、私はargcをオーバーフローさせることができるかどうかを疑問に思うようになりました。 標準では argv[argc] はヌルポインタでなければならないとされていますが、argcがオーバーフローした場合、これは偽になります。 (I が書いた をテストするために小さな C プログラムと Python スクリプトを書

    2023-10-23 22:05:17
  • GDBでポインタを配列のように表示する方法は?

    質問 定義されているとする。 int a[100] タイプ print a と入力すると、gdbは自動的にそれを配列として表示します。 1, 2, 3, 4... . しかし、もし a がパラメータとして関数に渡された場合、gdb はこれを通常の int ポインタとして扱い、型は print a が表示されます。 (int *)0x7fffffffdaa0 . を表示したい場

    2023-10-19 11:22:12
  • main()の第3引数にchar *envp[]を指定するのはポータブルか?

    質問 で環境変数を取得するために C プログラムでは、次のように使うことができます。 getenv() extern char **environ; しかし、上記以外で char *envp[] を第三引数として main() として、標準の一部とみなされる環境変数を取得することができますか? #include <stdio.h> int main

    2023-10-18 07:48:44