Tôi đang làm việc trên Linux với mã thực hiện cuộc gọi system()
để chạy chương trình python. Tôi quan tâm đến giá trị trả về bởi lời gọi hàm này để hiểu cách thực hiện chương trình python.Giá trị trả về của cuộc gọi hàm system() trong C++, được sử dụng để chạy chương trình Python
Cho đến nay, tôi đã tìm thấy 3 kết quả:
Khi quá trình python hoàn tất thành công, giá trị trả về bởi hệ thống() là 0
Khi quá trình trăn bị giết giữa thực hiện (sử dụng
kill -9 pid
), giá trị trả về bởi hệ thống() là 9Khi quá trình python không thành công do tham số không chính xác, giá trị trả về bởi hệ thống() là 512
Điều này không phù hợp với những gì tôi đã đọc về chức năng system().
Hơn nữa, mã cho chương trình python được gọi cho thấy nó thoát với sys.exit(2)
khi gặp phải bất kỳ lỗi nào và sys.exit(0)
khi thực thi hoàn tất thành công.
Có ai liên hệ hai điều này không? Tôi có giải thích giá trị trả về sai không? Có một số xử lý Linux có liên quan mà có các đối số của các chức năng sys.exit()
của chương trình python và trả về giá trị của system()
dựa trên nó?
Bạn gọi chương trình python như thế nào? tức là với 'hệ thống ("/usr/bin/env python/path/to/script ");'? – mkb
'hệ thống (" python progname.py arg1 arg2 arg2 ");' Python đã được thêm vào PATH –