2010-08-31 30 views

Trả lời

13

Một là một phần của thư viện chuẩn c (fopen) để bạn có thể mong đợi nó có mặt trên tất cả các thiết lập trình biên dịch c được lưu trữ. Hàm này trả về một FILE* có thể được vận hành bằng các hàm trong <stdio.h>.

Khác (open) là cuộc gọi/chức năng hệ thống không được chỉ định theo tiêu chuẩn c (tuy nhiên, tôi tin rằng nó là một phần của tiêu chuẩn POSIX) và do đó chỉ được đảm bảo tồn tại trên các nền tảng lựa chọn yêu cầu hỗ trợ. Điều này trả về một int đại diện cho một tệp, điều này có thể được vận hành bằng cách sử dụng read/write và các chức năng tương tự khác.

+1

Xem http://www.cplusplus.com/reference/clibrary/cstdio/fopen/ và http://rabbit.eng.miami.edu/info/functions/unixio.html để đọc thêm! – stanigator

4

open() là cuộc gọi hệ thống được chuẩn hóa được cung cấp bởi hệ điều hành tuân thủ POSIX (hầu hết các hệ điều hành giống POSIX cũng có cuộc gọi hệ thống open()). fopen() là một hàm thư viện C được cung cấp bởi thư viện thực thi và/hoặc thư viện thời gian chạy C.

fopen() cho phép đầu vào/đầu ra được lưu vào bộ đệm và/hoặc định dạng, trong khi open() thường được sử dụng cho IO đơn giản hơn. Có thể thực hiện chức năng fopen() bằng cách sử dụng cuộc gọi hệ thống open().

1

Như những người khác cho biết open() là một cuộc gọi hệ thống thông qua tiêu chuẩn POSIX, chủ yếu được hỗ trợ bởi họ hệ điều hành UNIX. Nó trả về 'int' cho biết bộ mô tả tập tin được mở.

Trong khi mặt khác fopen() được cung cấp bởi thư viện C và nó trả về một FILE * trỏ đến tệp đang được mở.

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