cuốn sách gpt4 ai đã làm

linux - Khó khăn khi sử dụng execve

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 03:41:35 25 4
mua khóa gpt4 Nike

Tôi đang cố thực thi lệnh "đếm từ" trên một tệp được cung cấp bởi đường dẫn tuyệt đối - "/home/aaa/xxzz.txt". Tôi đã tắt đầu vào tiêu chuẩn để có thể nhận đầu vào từ một tệp, nhưng chương trình không đưa ra bất kỳ đầu ra nào. Ngoài ra, nếu tôi thêm một số câu lệnh sau lệnh "execve", nó cũng sẽ được thực thi. Chương trình có nên thoát sau khi thực thi không?

 int main()
{
char *envp[]={NULL};

int fd=open("/home/aaa/xxzz.txt",O_RDONLY);

đóng(0);
dup(fd);

char *param[]={ "/bin/wc",NULL };
execve("/bin/wc",param,envp);

}

câu trả lời hay nhất

khả thi wc không tồn tại trong /bin trong (ngoại trừ một số liên kết tượng trưng với /usr/bin hệ thống vì wc thường được tìm thấy ở phần sau). Nếu tôi thay đổi đường dẫn trong ví dụ thành /usr/bin/wc, nó hiệu quả với tôi:

#include 
#include

int
chủ yếu()
{
char *envp[] = {NULL};

int fd = open("/home/aaa/xxzz.txt", O_RDONLY);

đóng(0);
dup(fd);

char *program = "/usr/bin/wc";
char *param[] = {program,NULL};
execve(chương trình, param, envp);
}

Về linux - những khó khăn khi sử dụng execve, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/29440631/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress