Trong chương trình này C
Làm thế nào để chuyển hướng đầu ra của hệ thống() vào một tệp?
#include <stdio.h>
#include <fcntl.h>
int main()
{
int file = open("Result", O_CREAT|O_WRONLY, S_IRWXU);
dup2(stdout, file);
system("ls -l");
return 0;
}
Tôi đang cố gắng để chuyển hướng đầu ra của system() vào một tập tin, cho rằng tôi đã sử dụng dup2 nhưng nó không được làm việc.
Có gì sai với mã này?
và, vui lòng cho tôi biết nếu có bất kỳ cách nào tốt hơn để thực hiện điều này? (không sử dụng >
tại đầu cuối)
Tại sao không chỉ cần gõ '>' chuyển hướng trong 'lệnh system'? –
Sử dụng 'system (" ls -l> Result ");' hoặc tạo kết hợp 'fork()'/'exec *()' của riêng bạn. –
Không sử dụng 'hệ thống'. Nó luôn luôn sai. Chạy quá trình con bạn mà không cần shell, hoặc sử dụng 'fork' và' execvp' hoặc 'posix_spawn'. –