Главная    Разработка ПО    функции языка Си

Описание функций языка Си

" F "

fabs,fabsf,fabsl 

fclose 

fcloseall 

fdim,fdimf,fdiml 

fdopen 

fegetround 

feof 

ferror 

fesetround 

fgetc 

fgets 

fileno 

finite,finitef,finitel 

fflush 

floor,floorf,floorl 

fma,fmaf,fmal 

fmax,fmaxf,fmaxl 

fmin,fminf,fminl 

fmod,fmodf,fmodl 

fopen 

fpclassify 

fputc 

fputs 

freopen 

frexp,frexpf,frexpl 

fseek 

fseeko 

ftell 

ftello 

All | _ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

fdopen – открытие потока данных по дескриптору файла.

Синтаксис:

#include < stdio.h >
FILE *fdopen (int *filed, const char *mode);

Аргументы:

filed – дескриптор файла.
mode – указатель на строку содержащую режим доступа к открытому файлу.

Возвращаемое значение:

Указатель на управляющую таблицу открытого потока данных, если открытие файла произошло успешно.

NULL – если при открытии файла произошла ошибка. В переменную errno будет записан код ошибки.

Описание:

Функция fdopen создает поток данных и связывает его с файлом описанным дескриптором filed. Режим доступа, указываемый в аргументе mode должен совпадать с режимом доступа к файлу, на который указывает дескриптор filed.

Предусмотрены следующие режимы доступа:

r или rb – чтение из файла.

w или wb – запись в файл. Запись начнется с начала файла и существующие данные будут перезаписаны. Чтобы продолжить запись с конца файла используйте режим доступа a или ab или a+ или ab+ или a+b.

a, ab, a+, ab+ или a+b – записи в конец файла.

r+, rb+, r+b, w+, wb+ или w+b – чтение и запись в файл. Запись или чтение начнется с начала файла. При записи существующие данные будут перезаписаны. Чтобы продолжить запись с конца файла используйте режим доступа a или ab или a+ или ab+ или a+b.

Пример:

В примере открывается с помощью функции open() файл с именем test.txt, располагающейся в папке myfile (папка создана до запуска программы и располагается в директории, из которой запускается программа) с разрешением записи и чтения. Функция open() возвращает дескриптор открытого файла.

С помощью функции fdopen(), по дескриптору файла, с файлом связывается поток данных для чтения и записи в файл. Затем в файл записывается строка «Тест записи в файл» и файл закрывается. Отчет о работе выводится на консоль.


#include < stdio.h >  //Для puts, printf, fprintf, fdopen
#include < fcntl.h >  //Для open
#include < fcntl.h >  //Для определения константы O_RDWR

int main (void)
{  
   // Переменная, в которую будет сохранен указатель
   // на управляющую таблицу открываемого потока данных
   FILE *mf;

   // Переменная, в которую будет сохранен дескриптор открытого файла
   int dfile = -1;     

   //Открытие файла для записи и чтения
   printf (“Открытие файла: ”);
   dfile = open (“myfile/test.txt”,O_RDWR);

   // Проверка открытия файла
   if (dfile == -1) printf (“ошибка\n”);
   else printf (“выполнено\n”);

   // Привязка к открытому файлу потока данных
   printf (“Привязка потока данных: ”);
   mf = fdopen (dfile,”r+”);

   // Проверка привязки потока данных
   if (mf == NULL) printf (“ошибка\n”);
   else printf (“выполнено\n”);
 
   //Запись данных в файл
   fprintf (mf,“Тест записи в файл”);
   printf (“Запись в файл выполнена\n”);

   // Закрытие файла
   printf (“Закрытие файла: ”);
   if ( fclose (mf) == EOF) printf (“ошибка\n”);
   else printf (“выполнено\n”);

   return 0;
} 

Результат:

Вывод на консоль:

Открытие файла: выполнено
Привязка потока данных: выполнено
Запись в файл выполнена
Закрытие файла: выполнено



Содержимое файла:



Тест записи в файл



Смотри так же:

fclose
fcloseall
fdopen
fileno
fopen
freopen


Яндекс.Метрика

Рейтинг@Mail.ru