私はPythonのサブプロセスオプションをテストしている。私はC言語で簡単なコードを書いたので、Pythonのサブプロセスで実行したい。これは、それがどのように見えるかです:Pythonサブプロセスが間違った値を返す(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;
}
Pythonのコード:
def subTest():
while True:
numberS = subprocess.call('./example')
print (numberS)
出力私が手
2110 return number: 2110
出力:
私は、実行Pythonコードの後に持っているべきです2110 return number: 62
私はそれをいくつかの '数字'と適切な値でテストしますが、255まで、次に256 - > 0などです。なぜですか?なぜそれが8ビット値を与え、適切な値を返すためにそれを行うのですか?
私はRaspbianにあります。これは唯一の8ビット値を返します。たとえば、もし私が 'long long int main()'を持っていれば、同じ問題があります。 'ValueError:基数10のint()の無効なリテラル:b '' – BengBeng
あなたのコードには、あなたが指定した通りに' printf( "%d"、number); 'が必要ですあなたの質問で。まるで何も印刷していないかのように見えます。 –