Возможный дубликат:
C fopen vs open
В чем разница между open() и fopen() на языке C?
Возможный дубликат:
C fopen vs open
В чем разница между open() и fopen() на языке C?
Один из них является частью стандартной библиотеки c (fopen), поэтому вы можете ожидать, что она будет присутствовать во всех установках компилятора размещенного c. Эта функция возвращает FILE*, которая может управляться функциями в <stdio.h>.
Другой (open) - это системный вызов/функция, не указанная стандартом c (однако, я считаю, что это часть стандарта POSIX) и поэтому гарантируется только на некоторых платформах, которые утверждают, что поддерживают ее. Это возвращает int, который представляет файл, это можно использовать при использовании read/write и других подобных функций.
open() - стандартизованный системный вызов, предоставляемый операционной системой, совместимой с POSIX (большинство POSIX-подобных операционных систем также имеют системный вызов open()). fopen() - это библиотечная функция C, предоставляемая библиотекой реализации C и/или выполнения.
fopen() допускает буферизованный и/или форматированный ввод/вывод, тогда как open() обычно используется для более простого ввода-вывода. Функцию fopen() можно реализовать с помощью системного вызова open().
Как говорят другие, open() представляет собой системный вызов через стандарт POSIX, в основном поддерживаемый семейством ОС UNIX. Он возвращает 'int', указывающий на открытие дескриптора файла.
В то время как fopen() предоставляется C-библиотекой и возвращает FILE *, указывающий на открываемый файл.