popen・pcloseについて
以下のようにpopenを使ってdirコマンドを打った時と同じようなプログラムを
Microsoft Visual C++ 2008上で作ったのですが
#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;
}
これをビルドした所、以下のようなエラーが出てしまいました。
c:\users\yamaomoto\documents\visual studio 2008\projects\popen\popen\popen.c(8) : warning C4013: 関数 'popen' は定義されていません。int 型の値を返す外部関数と見なします。
c:\users\yamaomoto\documents\visual studio 2008\projects\popen\popen\popen.c(8) : warning C4047: '=' : 間接参照のレベルが 'FILE *' と 'int' で異なっています。
c:\users\yamaomoto\documents\visual studio 2008\projects\popen\popen\popen.c(14) : warning C4013: 関数 'pclose' は定義されていません。int 型の値を返す外部関数と見なします。
popen.obj : error LNK2019: 未解決の外部シンボル _pclose が関数 _main で参照されました。
popen.obj : error LNK2019: 未解決の外部シンボル _popen が関数 _main で参照されました。
C:\Users\Yamaomoto\Documents\Visual Studio 2008\Projects\popen\Debug\popen.exe : fatal error LNK1120: 外部参照 2 が未解決です。
色々と試してみたのですが解決に至りませんでしたのでよろしければ、
教えて頂けませんでしょうか?
No.1ベストアンサー
- 回答日時:
VC++の場合は関数名を
_popen
_pclose
というように前に「_」を付ければ使えます。
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;
}
多分コレで通るかと。
この回答への補足
>>popenとかは本来UNIX系OS専用関数ですが、それは大丈夫ですか?
全く大丈夫じゃありませんでした。
関数名は完全にUNIXでもVC++でも同じだと思っていました…
まだ、VC++始めて浅くてその辺りの理解が足りてませんでした。
そのあたり、UNIXとVC++で関数名の違いが載っているサイトとかご存知でしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# 未解決の外部シンボル _printfが関数_mainで参照されました 1 2022/09/18 15:28
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
未解決の外部シンボル
-
PCをシャットダウンさせるプロ...
-
外部依存関係について
-
外部シンボルの未解決のエラー
-
LNK2019: 外部シンボル どのよ...
-
popen・pcloseについて
-
error LNK2001について
-
OpenCVでの画像サイズ取得につ...
-
Visual C++ 2005 Express Editi...
-
C++でのエラー LNK2001
-
DirectInput
-
LNK2001(Pro*c)
-
MFC C++ と C++/CLI の文字列
-
python エラー
-
エクセルのエラーメッセージ「4...
-
<unistd.h>をVisualStudioでつ...
-
Excelのエラーで困ってます。
-
VBAを何回も作り直して、容量が...
-
アプリケーションのDLLファイル...
-
ソフトの開発言語を調べる方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
外部依存関係について
-
外部シンボルの未解決のエラー
-
コンパイルエラー
-
外部シンボル" ~~"は未解決で...
-
LNK2019: 外部シンボル どのよ...
-
DLL呼び出しAPのリンクエラーに...
-
LNK2001(Pro*c)
-
このプログラムを動かしたいの...
-
error LNK2001について
-
プロセスIDの取得の方法。
-
エラー 未解決の外部シンボル
-
C++ の LNK2001エラー
-
パブリックシンボルとは?
-
OpenCVでの画像サイズ取得につ...
-
C言語のエラー LNK1120: 外部参照
-
C++でのエラー LNK2001
-
「外部参照 1 が未解決です。」...
-
Visual Stdio.netでビルドがで...
-
エラー lnk2019について
-
wsprintfのエラーについて
おすすめ情報