/
FlowerTower
/
System_Programming_in_Linux
Обзор
Документация
Войти
/
FlowerTower
/
System_Programming_in_Linux
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
file_task/file_task.c
58 строк
1 KB
FlowerTower
create file_task/file_task.c
09 янв 2025, 09:38
09 янв 2025, 09:38
a01ce1d
Код
Авторство
О чём код?
#include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <string.h> #include <sys/stat.h> void write_to_file(const char *filename, const char *data) { int fd = open(filename, O_WRONLY | O_CREAT | O_APPEND, 0644); if (fd == -1) { perror("Ошибка открытия файла для записи"); exit(EXIT_FAILURE); } if (write(fd, data, strlen(data)) == -1) { perror("Ошибка записи в файл"); close(fd); exit(EXIT_FAILURE); } close(fd); } void read_from_file(const char *filename) { char buffer[256]; int fd = open(filename, O_RDONLY); if (fd == -1) { perror("Ошибка открытия файла для чтения"); exit(EXIT_FAILURE); } ssize_t bytesRead; while ((bytesRead = read(fd, buffer, sizeof(buffer) - 1)) > 0) { buffer[bytesRead] = '\0'; printf("%s", buffer); } if (bytesRead == -1) { perror("Ошибка чтения из файла"); } close(fd); } int main(int argc, char *argv[]) { if (argc != 3) { fprintf(stderr, "Использование: %s <имя_файла> <строка>\n", argv[0]); return EXIT_FAILURE; } const char *filename = argv[1]; const char *data = argv[2]; write_to_file(filename, data); read_from_file(filename); return EXIT_SUCCESS; }