1

os.system を使用して make コマンドを実行します

os.system('make -C mydir/project all')

make が失敗するかどうかを確認したいと思います。システムのドキュメントには、戻りコードが次の形式と同じであると記載されています。wait()

Wait for completion of a child process, and return a tuple containing its pid 
and exit status indication: a 16-bit number, whose low byte is the signal number 
that killed the process, and whose high byte is the exit status (if the signal 
number is zero); the high bit of the low byte is set if a core file was produced.

したがって、make (または別のアプリケーション) が -1 を返した場合、0xFFxx (呼び出されたものの pid はあまり気にしません) を -1 に変換する必要があります。右シフトの後、0xFF を取得しますが、それを -1 に変換することはできず、常に 255 を出力します。

では、Python では、どうすれば 255 を -1 に変換できますか、または 255 が実際には 8 ビットの符号付き整数であることをインタープリターに伝えるにはどうすればよいでしょうか?

4

2 に答える 2

7
if number > 127:
  number -= 256
于 2012-06-15T19:15:28.100 に答える
3

この場合、Ignacio の回答の方が適切かもしれませんが、特別にフォーマットされたデータからバイトをアンパックするための優れた汎用ツールは次のstructとおりです。

>>> val = (255 << 8) + 13
>>> struct.unpack('bb', struct.pack('H', val))
(13, -1)
于 2012-06-15T19:15:47.453 に答える