Примеры программ работы с файлами

Пример 1. Запись в файл и чтение из файла. Обратите внимание на обработку параметров командной строки.

/*--------------------------------------------------*/

/* Программа воспринимает в качестве параметра */

/* командной строки имя рабочего файла. Если файл */

/* не существует, он будет создан, если существует, */

/* его содержимое будет потеряно. */

/*--------------------------------------------------*/

#include <stdio.h>

#include <sys/stat.h>

#include <sys/types.h>

#include <fcntl.h>

int fd;

int f1()

{ static int j = 1;

if (j > 10) return 0;

write(fd, &j, sizeof(int));

printf("write %d -- %d\n", fd, j++);

return 1;

}

void f2()

{ int i;

lseek(fd,-sizeof(int), 1);

read(fd, &i, sizeof(int));

printf("read %d -- %d\n", fd, i);

}

void main(int argc, char *argv[])

/* argc – количество параметров командной строки. */

/* *argv[] – указатели на строки параметров */

{ if (argc < 2) puts("Format: rw filename");

else

{ fd = open(argv[1], O_CREAT | O_RDWR);

while(f1()) f2();

close(fd);

}

exit(0);

}

Пример 2. Дублирование дескриптора файла.

/*---------------------------------------------*/

/* Перенаправление стандартного вывода в файл. */

/*---------------------------------------------*/

#include <io.h>

#include <stdio.h>

#include <string.h>

#include <fcntl.h>

void main(void)

{ int outf, std_out;

char *str1 = "Вывод строки в файл ",

*str2 = "Вывод строки на экран";

std_out = dup(1);

/* закрытие стандартного вывода */

close(1);

outf = open("1.dat", O_WRONLY);

puts(str1);

write(std_out,str2,strlen(str2));

/* восстановление предыдущих значений */

close(outf);

outf = open("dev\tty", O_WRONLY);

close(std_out);

exit(0);

}

ВЫПОЛНЕНИЕ ЛАБОРАТОРНОЙ РАБОТЫ

Выполнение работы заключается в написании и отладке программы по одному из вариантов задания (п.5). Ввод текста программы и его редактирование производится с помощью любого редактора UNIX (vi, ed и др.). Компиляция программы осуществляется с помощью следующего вызова:

$ cc имя_файла.с

На выходе получается исполняемый файл "a.out" или список сообщений об ошибках. Расширение указывать обязательно. Если запустить компилятор с опицией -o, можно указать произвольное имя исполняемого файла:

$ cc -o имя_исполняемого_файла имя_файла.c

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


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



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