• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:popen・pcloseについて)

popenの使用に関するエラー

このQ&Aのポイント
  • Microsoft Visual C++ 2008上でpopenを使用してdirコマンドと同じプログラムを作成しようとした際にエラーが発生しました。
  • ビルド時に関数 'popen' と 'pclose' の未解決外部シンボルエラーが発生しました。
  • 解決策を見つけることができず、質問を投げることにしました。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

VC++の場合は関数名を  _popen  _pclose というように前に「_」を付ければ使えます。

yamaomoto
質問者

補足

ありがとうございました。ビルド出来ました。

その他の回答 (1)

  • Fllisy
  • ベストアンサー率27% (15/54)
回答No.2

popenとかは本来UNIX系OS専用関数ですが、それは大丈夫ですか? Windowsでやる場合には関数の前に_を付ける必要があります。 #include <stdio.h> int main(void) { FILE *fp; char buff[64]; fp=_popen("dir","r"); while(fgets(buff,sizeof(buff),fp)!=NULL){ printf("%s",buff); } _pclose(fp); return 0; } 多分コレで通るかと。

yamaomoto
質問者

補足

>>popenとかは本来UNIX系OS専用関数ですが、それは大丈夫ですか? 全く大丈夫じゃありませんでした。 関数名は完全にUNIXでもVC++でも同じだと思っていました… まだ、VC++始めて浅くてその辺りの理解が足りてませんでした。 そのあたり、UNIXとVC++で関数名の違いが載っているサイトとかご存知でしょうか?