프로그래밍/C언어

코드에서 외부프로그램 실행

mi-nos 2022. 7. 11. 23:08

코드에서 외부프로그램 실행 후 결과값 받는것 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define BUFFER_SIZE 1024
 
int main() {
 
    char buffer[BUFFER_SIZE] = {0};
 
    FILE *fp = popen(".//test.exe dir""r");
 
    if(fp == NULL) {
        return -1;
    }
 
    while(fgets(buffer, BUFFER_SIZE, fp)) {
        printf("%s", buffer);
 
        memset(buffer, 0, BUFFER_SIZE);
    }
 
    return 0;
}
cs

 

그리고 외부프로그램 실행 후 명령어 주고 결과 받는 프로그램 

(이건 검증 필요) 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define BUFFER_SIZE 1024
 
int main() {
 
    char buffer[BUFFER_SIZE] = {0};
    int loop_cnt =0;
 
    FILE *fp = popen(".//test.exe aaaa""r");
    FILE *fp2 = popen(".//test.exe bbbb""w");
 
    if(fp == NULL) {
        return -1;
    }
 
    if(fp2 == NULL) {
        return -1;
    }
 
    while(loop_cnt < 3) {
        
        if(loop_cnt ==1 ){
            frpintf(fp2, "1111");
        }else if(loop_cnt == 2){
            fprintf(fp2, "2222");
        }
 
        fgets(buffer,BUFFER_SIZE, fp);
 
        printf("%s \n", buffer );
        memset(buffer, 0, BUFFER_SIZE);
        loop_cnt++;
    }
 
    return 0;
}
 
cs

 

관련 내용은 아래 링크 참고함 

https://www.it-note.kr/4

 

popen(3), pclose(3)의 활용 - 다른 프로세스의 표준 입/출력 제어하기

데몬(daemon) 프로그램이 아닌 이상, 많은 프로그램(명령어)들은 데이터를 keyboard로 입력을 하거나, 그 결과를 화면의 출력으로 확인한다. 그래서 이런 경우에는 사람이 직접 수작업으로 실행하고

www.it-note.kr