Функция fgets

Функция

#include<stdio.h>

char * fgets(char s, int n, FILE *stream);

считывает из потока stream строку символов и помещает ее в s. Ввод завершается после ввода n-1 символа или при вводе символа перехода на следующую строку, смотря что произойдет раньше. В отличие от gets, fgets прекращает ввод строки при получении символа перехода на следующую строку.

Нулевой байт добавляется в конец строки для индикации ее конца.

При успешном завершении возвращает указатель на s, при ошибке или конце файла возвращает NULL.

Пример:

#include<string.h>

#include<stdio.h>

int main(void)

{

FILE *stream;

char string[] = "Тестовый пример";

char msg[20];

/* создать файл для его изменения */

stream = fopen("DUMMY.FIL","w+");

/* записать в файл данные */

fwrite(string,strlen(string),1,stream);

/* перейти в начало файла */

fseek(stream,0,SEEK_SET);

/* ввести строку из файла */

fgets(msg,strlen(string)+1,stream);

/* напечатать строку */

printf("%s",msg);

fclose(stream);

return 0;

}

Функция filelength

Функция

#include<io.h>

long filelength(int handle);

возвращает длину в байтах файла, соответствующего дескриптору handle.

При успешном завершении функция filelength возвращает значение типа long- длину файла в байтах. При ошибке функция возвращает значение -1L, и глобальной переменной errno присваивается: EBADF - Неверный номер файла.

Пример:

#include<stdio.h>

#include<io.h>

#include<fcntl.h>

#include<sys\stat.h>

#include<string.h>

int main(void)

{

int handle;

char buf[11] = "0123456789";

/* создать файл из 10 байт */

handle = open("DUMMY.FIL",O_RDWR|O_CREAT|O_TRUNC,S_IREAD|S_IWRITE);

write(handle,buf,strlen(buf));

/* напечатать размер файла */

printf("Размер файла в байтах: %ld\n",filelength(handle));

/* закрыть файл */

close(handle);

return 0;

}

Функция fileno

Функция

#include<stdio.h>

int fileno(FILE * stream);

представляет собой макрокоманду, которая возвращает логический номер файла для заданного потока stream. Если поток stream имеет более одного номера, функция fileno возвращает номер, назначенный данному потоку при первом открытии.

Функция fileno возвращает целое число, обозначающее значение дескриптор файла, соответствующий потоку stream.

Пример:

#include<stdio.h>

int main(void)

{

FILE *stream;

int handle;

/* создать файл */

stream = fopen("DUMMY.FIL","w");

/* получить дескриптор файла */

handle = fileno(stream);

/* напечатать его */

printf("Дескриптор файла = %d\n",handle);

/* закрыть файл */

fclose(stream);

return 0;

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: