Làm cách nào để ống dẫn stdout và stderr của quá trình xử lý giống nhau? Trên các hệ thống unix, nó khá dễ dàng, chỉ cần sử dụng createPipe
và vượt qua đầu ghi là runProcess
làm cả stdout và stderr. Trên Windows khó hơn:Làm cách nào để ống dẫn stdout và stderr của quá trình xử lý giống nhau?
Cả gói unix-compat lẫn Win32 đều không xuất được cách tạo ống.
openTempFile
(có thể được sử dụng để mô phỏng đường ống) đặt chế độ sai trênHandle
được tạo.
Edit: Để đưa ra một số bối cảnh nhiều hơn: Tôi muốn chạy một quá trình và có nó viết stdout và stderr của nó với cùng Handle
, một cách cross-platform.
Thú vị. Theo cách nào thì các quyền đó sai? Theo tài liệu hướng dẫn, 'xử lý' của' openTempFile' được tạo ra với sự cho phép 'ReadWrite', mà phải đủ cho một tiến trình khác (do cùng một người dùng chạy) để ghi vào nó. –