프로그래밍/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 |
관련 내용은 아래 링크 참고함
popen(3), pclose(3)의 활용 - 다른 프로세스의 표준 입/출력 제어하기
데몬(daemon) 프로그램이 아닌 이상, 많은 프로그램(명령어)들은 데이터를 keyboard로 입력을 하거나, 그 결과를 화면의 출력으로 확인한다. 그래서 이런 경우에는 사람이 직접 수작업으로 실행하고
www.it-note.kr