C fopen vs open - PullRequest
       39

C fopen vs open

194 голосов
/ 02 ноября 2009

Есть ли какая-либо причина (кроме синтаксической), которую вы хотите использовать

FILE *fdopen(int fd, const char *mode);

или

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

вместо

int open(const char *pathname, int flags, mode_t mode);

при использовании C в среде Linux?

Ответы [ 11 ]

0 голосов
/ 22 октября 2014

открытие файла с использованием fopen
прежде чем мы сможем прочитать (или записать) информацию из (в) файла на диске, мы должны открыть файл. чтобы открыть файл мы вызвали функцию fopen.

1.firstly it searches on the disk the file to be opened.
2.then it loads the file from the disk into a place in memory called buffer.
3.it sets up a character pointer that points to the first character of the buffer.

это способ поведения функции fopen
Есть некоторые причины во время процесса буферизации, это может привести к превышению времени ожидания. поэтому при сравнении системного вызова fopen (высокий уровень ввода-вывода) с open (низкий уровень ввода-вывода), он более быстрый, чем fopen .

...