私はpopen()
C++プログラムで使用しています。で定義されている C 関数であることがわかりますstdio.h
。IDE (KDevelop 4) に を認識させようとしていますpopen()
。
実際のソースコードを調べてみましたstdio.c
。ここでpopen
は、マクロなどによって「ラップ」されているようには見えません - の他の典型的な関数のように見えますstdio.h
popen()
では、IDE で認識されない のはなぜですか? #include <stdio.h>
必要なものはすべてあるはずですが、機能しません...
MANページで、機能テストマクロについて話していることに気づきました。ではstdio.h
、popen()
マクロによってラップされていません (繰り返しますが、他の関数と同じように見えます)。さらに、これらのマクロのいずれかを含めようとすると、たとえば#define _POSIX_C_SOURCE 2
、問題は解決されず、popen()
認識されません。
ただし、プログラムはコンパイル (g++) され、正しく実行されます。ここで何が起こっているのか知りたいだけです。
(StackOverflow の別のスレッドがこの問題に対処していますが、満足のいく答えは得られていません: #include <stdio.h> が追加されているにもかかわらず、暗黙的に宣言された popen )