2012-05-13 6 views
0

PC(Linux OS - IPv4)のeth0インターフェースのIPアドレスを使用する必要があります。 IPアドレスを事前に知らなくても、それを定数変数として定義するにはどうすればよいですか?Cプログラミングの定数変数としてIPアドレスを定義する方法は?

+0

どのようなOSですか?先験的なことが分からなければ、システムコールを見てそれを調べる必要があります。 – Flexo

+0

言語自体はそれとは関係ありません。多かれ少なかれ移植可能なライブラリ、または単純にシステムコールが必要です。 – ScarletAmaranth

+0

この質問は非常にあいまいです。あなたは十分な情報を提供していません。それは何のために使用されますか? XXX.XXX.XXX.XXXという形式の文字列として 'unsigned char [4]'(IPv6の場合は6)としてBSDソケットのホストstruct型の1つとして格納できます(struct inaddrなど...)...!? –

答えて

2

アドレスバッファへのポインタとして使用することができます。あなたはあなたのライブラリのコードを持っている必要があるだろうconst資格の種類

extern your_address_type const*const addr; 

へのポインタをエクスポートし、あなたのライブラリーの中に何か

static your_address_type my_address; 
your_address_type const*const addr = &my_address; 

などを見るあなたが適切に my_addressを初期化することができ、クライアントコードのみ addrを見るであろうし、それを変更することはできません。

2

できません。

Cで定数を定義するには、プリプロセッサ(#define)と定数(const something)の2つの方法があります。これらの両方で、コンパイル時に定数の値を知る必要があります。したがって、プログラムの実行中に別の値で上書きする可能性がなくても、このIPを参照する方法があれば、単に実行できません。

関連する問題