2016-09-05 3 views
1

가능합니까? C 프로그램에 입력으로 파이썬 출력.파이썬 입력을 C 프로그램에 출력

내가이 코드를 작동한다고 말하면 나를 믿을 까? 이제 작동하지 않습니다. 어떻게 작동시킬 수 있습니까? myProgram에 대한

python -c 'print "a" ' | ./myProgram 

간단한 예 :

#include <stdio.h> 

int main(int argc, char *argv[]){ 

    int i = 0; 

    if(argc > 0){ 
    for(i; i<argc; i++){ 
     printf("%s\n", argv[i]); 
    } 
    printf("Done."); 
    } 
    return 0; 
} 

답변

1

당신의 C 코드 입력은 scanf에 의해주의해야한다.

C 코드 : [test.c]

#include <stdio.h> 
int main() { 
    int x; 
    scanf("%d",&x); 
    printf("Value is %d\n",x); 
} 

컴파일 :

gcc test.c -o foo

파이썬 코드 : [test.py]

print (3) 

명령 :

,

python test.py | ./foo

는 출력 : C code

Value is 3

여기서 표준 입력 파이프의 단부에 keyboard 변경됩니다. python code의 표준 출력은 monitor에서 beginning of pipe으로 변경됩니다.

C에는이 작업을 수행하는 커널 수준의 호출이 있습니다. close(), dup() 전화에 대해 읽어보십시오. 나는 당신의 개념이 그 때 맑게 될 것이라는 점을 희망한다. 행운을 빌어 요 :)

그리고 실제로 명령 줄 인수를 인쇄하려고합니다. 그러나 당신의 명령을보십시오. 어떤 인수도 myprogram에 전달하지 않았습니다. 따라서 argc = 0.

0

하면 작동하도록이 작업을 수행 :이는 argc/argv를 작동

./myProgram `python -c 'print "a" '` 

합니다. Parnab이 말했듯이 파이프가 당신의 주장을 stdin으로 바꾸기 때문에 이전에는 아무런 논증도 없었습니다.

관련 문제