- ベストアンサー
#defineの使い方について
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/strdup.3.html の書式のところに #define _GNU_SOURCE という一文があるのですが、これは何をしているのでしょうか。 #defineはマクロを定義するために使用するのは、 知っています。#define _GNU_SOURCEは _GNU_SOURCE のあとに 何も書かれていないのが不自然です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- Linuxのperrorのpは何の意味?
Linuxのperrorのpは何の意味? プログラミングをしていて気になりました。 perror http://www.linux.or.jp/JM/html/LDP_man-pages/man3/perror.3.html
- ベストアンサー
- C・C++・C#
- ${parameter:-word} と ${parameter:=word} の違い
bashのパラメータ展開で ${parameter:-word} と ${parameter:=word} の違いが何なのかよく分らないのですが、何が違うのでしょうか? http://www.linux.or.jp/JM/html/GNU_bash/man1/bash.1.html
- ベストアンサー
- その他(プログラミング・開発)
- defineで定数が置き換えられない?(C言語)
#defineについて質問です。 #defineは、ソースコード内にこの文字を見つけたら、コンパイルする前にこの文字をこの定数に置き換えて、というプリプロセッサですよね?だから、printfで#defineで定義した定数を出力する場合で、変換指定が必要ない場合は #include <stdio.h> #define DEF 100 void main(){ printf("#defineで定義された定数はDEFです"); } でもいいと思うんです。ですがこのソースコードは間違いで、実行結果は #defineで定義された定数はDEFです(←置き換えられてない) となってしまします。プリプロセッサだけ実行しても、DEFは100に置き換えられずそのままです。printfで#defineで定義した定数を出力させたい場合は書式指定をしなければなりません。なぜ、このような場合は#defineで定義した定数は置き換えられないのでしょうか?回答よろしくお願いします。
- ベストアンサー
- C・C++・C#
- Windowsでインターバル・タイマーの値を取得または設定する方法
Linuxで以下の関数を使えば、指定した時間にシグナルとして 指定した関数を呼ぶことが可能ですが、Windowsでは どのようにしたらよいのでしょうか? OsはWindowsXP32bitです。 参考:http://www.linux.or.jp/JM/html/LDP_man-pages/man2/getitimer.2.html #include <sys/time.h> int getitimer(int which, struct itimerval *value); int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue);
- ベストアンサー
- C・C++・C#
- difftime()について
difftime()は、秒数の差を返すものなのに、なんでdouble型を返す仕様になっているのでしょうか? double difftime(time_t time1, time_t time0); 関数 difftime() は時刻 time0 から時刻 time1 までの経過時間を double 型で返す。 2 つの時刻の値はカレンダー時間で指定する。カレンダー時間とは紀元 (協定世界時 (UTC) 1970年1月1日 00:00:00) からの経過秒数である。 http://www.linux.or.jp/JM/html/LDP_man-pages/man3/difftime.3.html
- 締切済み
- C・C++・C#
- int select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout)について
見当違いな質問かもしれませんがお願いします。 複数のソケットを監視する際にselectを使う場合のことですが、 selectの動作と戻り値について疑問があります。 http://www.linux.or.jp/JM/html/LDP_man-pages/man2/select.2.html ここを参照すると、selectの戻り値は 「更新された 3 つのディスクリプタ集合に含まれているディスクリプタの数 (つまり、 readfds, writefds, exceptfds 中の 1 になっているビットの総数) を返す。」 とあります。 私の中でselectは登録してあるFDのうち、一つでも動きがあれば即座にselectを抜けるもの、という認識です。 この認識だとreadfds,writefdsが引数として与えられているとしても、 どちらかのfd_setのうち、一つでも動きがあればselect文は 抜けてしまうことになります。とすると、戻り値として 「readfds, writefds, exceptfds 中の 1 になっているビットの総数」 は常に1ということになってしまいます。しかし、総数というからには 複数同時に1になることもあるはずです。 私の認識が間違っているとは思うのですが、どう間違っているのかわかりません。 select文の動きについて詳しく教えていただけないでしょうか。 または良いページがあれば教えてください。
- ベストアンサー
- C・C++・C#
- パケット通信時のIPヘッダの取得方法について
RedHat Linux9上で、g++3.2を使用して、ソケット通信の プログラムを作成していますが、UDPやTCPパケットを受信した際に 各パケットのIPヘッダを取得したいのですが、どのように行えばよいのでしょうか? RAWソケットを使用すればできるかとも思ったのですが、下記のURLに 「IPPROTO_RAW 経由でのあらゆる IP プロトコルの受信は、 raw ソケットを用いては行えない。」と書かれています。 http://www.linux.or.jp/JM/html/LDP_man-pages/man7/raw.7.html 上記のURLには、下記のようにも書かれていました。 packetソケットを使用しなければ実現できないのでしょうか? もし、そうならばpacketソケットのサンプルがありましたら、 教えていただけないでしょうか。 「IPPROTO_RAW ソケットは送信専用である。もしどうしてもすべての IP パケットを受信したい場合は、 packet(7) ソケットを ETH_P_IP プロトコルで用いること。」
- 締切済み
- C・C++・C#
- FTPにログインできない…
自宅サーバーを立てていますが、.htaccessファイルをアップしても表示されなかったため、このサイトhttp://www.linux.or.jp/JM/html/vsftpd/man5/vsftpd.conf.5.htmlを参考に以下の一文をvsftpd.confへ追記してみたところ、FTPでログインできなくなってしまいました。 仕方なく、この一文を削除し、Vsftpdをリブートしたのですが、ログインが回復せず、困っています。 どなたがご教授お願いします。 追記した一文 force_dot_files=YES FFFTPに出力されるようになったエラー 500 OOPS: could not open chroot() list file:/etc/vsftpd.chroot_list ログインできません.
- ベストアンサー
- その他([技術者向] コンピューター)
- MMAPのMAP_SHAREDについて
MMAPのMAP_SHAREDについての質問です。 下記ページのMAP_SHAREDの説明文に「ファイルの実際の更新は msync(2) または munmap() が呼ばれるまで行われないこともある。」とあるのですが、このケースは稀なケースなのでしょうか? また、どれくらいの頻度、発生条件などあるのでしょうか? http://linuxjm.sourceforge.jp/html/LDP_man-pages/man2/mmap.2.html
- 締切済み
- C・C++・C#
お礼
全部の回答を見まして、 「GNU固有の拡張が有効にする」ためのものだと判断しました。 2重インクルードを防ぐという目的にも使われることを 知りました。 ご回答いただきました皆様方ありがとうございました。