2012-03-09 24 views
8

Nhìn vào trang hướng dẫn cho fopen Tôi không thể nhận được câu trả lời rõ ràng cho câu hỏi này.Fopen có tạo ra một bộ mô tả tập tin không?

FILE *fopen(const char *path, const char *mode); 

Tôi hiểu rằng fopen trả về một con trỏ tập tin vào một dòng nhưng là một bộ mô tả tập tin được tạo ra như một sản phẩm phụ? Tôi đang cố gắng để đảm bảo rằng tôi bao gồm các cờ FD_CLOEXEC trên mỗi trường hợp một mô tả tập tin được tạo ra. Nếu một bộ mô tả tập tin trên thực tế được tạo ra từ fopen cách tốt nhất để sử dụng fnctl() khi không có "fd" để sử dụng làm đầu vào.

Cảm ơn.

Trả lời

16

Trên Unix (mà tôi giả sử bạn đang sử dụng vì bạn đang nhắc đến fcntl) nó không mở một bộ mô tả tập tin, như fopen(3) cuối cùng gọi open(2). Bạn có thể nhận được rằng mô tả tập tin qua fileno(3).

Các vấn đề liên quan