파이썬에서 하위 프로세스 옵션을 테스트하고 있습니다. 나는 C로 간단한 코드를 작성했으며 파이썬에서 서브 프로세스로 실행하고 싶다. 이는 모습입니다 :파이썬 하위 프로세스가 잘못된 값을 제공함 (64 비트 대신 8 비트 값 제공)
C 코드 example.c (처음에는 코드를 실행 한 후 하위 프로세스에 내가 실행 파일을 사용하고 있습니다) :
#include <stdio.h>
int main(int argc, char *argv[]) {
int number= 2110;
while (1==1)
{
printf("%d",number);
printf(" return number: ")
return number;
}
return 0;
}
파이썬 코드 :
def subTest():
while True:
numberS = subprocess.call('./example')
print (numberS)
출력 내가 할
2110 return number: 2110
출력 : 나는 실행 파이썬 코드 뒤에해야하는
012,351을2110 return number: 62
나는 '255'와 255까지 얻을 수있는 '숫자'와 적절한 값을 테스트한다. 왜 그런가? 왜 8 비트 값을주고 적절한 값을 반환하는 방법?
그래, 이건 단지 8 비트 값을 반환하는 것에 대한 미친 짓이야. 예를 들어'long long int main()'을 사용하면 어떤 문제가 발생합니다. 하지만 당신의 코드를 사용하면 다음과 같은 오류가 발생합니다 :'ValueError : 밑이 10 인 int()에 대한 리터럴이 올바르지 않습니다. '' – BengBeng
코드에 'printf ("% d", number);가 있어야합니다. 귀하의 질문에. 마치 아무것도 인쇄하지 않는 것처럼 보입니다. –