0

私はpopen()C++プログラムで使用しています。で定義されている C 関数であることがわかりますstdio.h。IDE (KDevelop 4) に を認識させようとしていますpopen()

実際のソースコードを調べてみましたstdio.c。ここでpopenは、マクロなどによって「ラップ」されているようには見えません - の他の典型的な関数のように見えますstdio.h

popen()では、IDE で認識されない のはなぜですか? #include <stdio.h>必要なものはすべてあるはずですが、機能しません...

MANページで、機能テストマクロについて話していることに気づきました。ではstdio.hpopen()マクロによってラップされていません (繰り返しますが、他の関数と同じように見えます)。さらに、これらのマクロのいずれかを含めようとすると、たとえば#define _POSIX_C_SOURCE 2、問題は解決されず、popen()認識されません。

ただし、プログラムはコンパイル (g++) され、正しく実行されます。ここで何が起こっているのか知りたいだけです。

(StackOverflow の別のスレッドがこの問題に対処していますが、満足のいく答えは得られていません: #include <stdio.h> が追加されているにもかかわらず、暗黙的に宣言された popen )

4

0 に答える 0