윈도우나 유닉스계열에서 프로그램내에서 시스템 명령이나 특정프로그램을 실행하고 그 결과값을 확인하고자 할때 popen함수를 이용하여 결과를 확인할 수 있습니다.
예제)
* 소스를 복사하시려는 경우 커서를 소스에 위치시키신 후 더블클릭하신후 Ctrl+C 로 복사하시면 됩니다.
#include
#include /* errno */
#include /* strerror */
#ifdef WIN32
#define popen _popen
#define pclose _pclose
#endif
int main(int argc, char* argv[])
{
const char *pszCommand = "dir";
FILE *fp = NULL;
size_t readSize = 0;
char pszBuff[1024];
// 명령어 실행
fp = popen(pszCommand, "r");
if( !fp)
{
printf("오류 [%d:%s]\n", errno, strerror(errno));
return -1;
}
// 결과값 읽기
readSize = fread( (void*)pszBuff, sizeof(char), 1024-1, fp );
if( readSize == 0 )
{
pclose(fp);
printf("오류 [%d:%s]\n", errno, strerror(errno));
return -1;
}
pclose(fp);
pszBuff[readSize]=0;
// 결과 출력
printf("%s\n", pszBuff);
return 0;
}
참고사이트
http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/2/popen#AEN8
http://msdn.microsoft.com/ko-kr/library/96ayss4b(VS.90).aspx