Các writev
chức năng phải mất một mảng của struct iovec như là đối số đầu vàoLàm thế nào để danh sách I/O writev nội bộ làm việc?
writev(int fd, const struct iovec *iov, int iovcnt);
Đầu vào là một danh sách các bộ đệm bộ nhớ mà cần phải được ghi vào một tập tin (ví dụ). Những gì tôi muốn biết là:
Liệu writev nội làm điều này:
for (each element in iov) write(element)
mà mọi phần tử của iov
được ghi vào tập tin trong một tôi riêng biệt/O gọi? Hoặc không writev
viết mọi thứ để nộp trong số Cuộc gọi I/O?
Tôi không hiểu dòng cuối cùng "khi hoạt động trên thiết bị đầu cuối". Ngoài ra, nơi chính xác trong src linux để bạn kiểm tra việc thực hiện writev? – jitihsk
"Khi hoạt động trên thiết bị đầu cuối" có nghĩa là khi bộ mô tả tập tin đề cập đến thiết bị đầu cuối. Đối với nơi trong nguồn, http://lxr.linux.no/#linux+v3.2.6/fs/read_write.c#L809 –