Část 1: Vytvoření souboru a zápis dat
Pojďme vytvořit nový soubor a zapsat do něj textový řetězec.
Použijeme funkci open(). Ta vyžaduje název souboru a příznaky (flags).
O_WRONLYříká, že chceme do souboru pouze zapisovat.O_CREATzajistí, že pokud soubor neexistuje, systém ho vytvoří.O_TRUNCvymaže obsah souboru, pokud už existoval, abychom začínali s čistým štítem.
Při vytváření musíme také specifikovat výchozí práva (např. 0644 znamená, že vlastník může číst i zapisovat, ostatní jen číst). Pro samotný zápis použijeme funkci write(). Nakonec soubor zavřeme pomocí close().
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
int main() {
const char *filename = "tutorial_soubor.txt";
const char *text = "Ahoj, toto jsou binarni data ulozena v Linuxu.\n";
// 1. Otevření/Vytvoření souboru
// Práva 0644: Vlastník (čtení+zápis), Skupina (čtení), Ostatní (čtení)
int fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0644);
if (fd == -1) {
perror("Chyba při otevírání souboru");
return 1;
}
printf("Soubor '%s' byl úspěšně vytvořen.\n", filename);
// 2. Zápis dat do souboru
ssize_t bytes_written = write(fd, text, strlen(text));
if (bytes_written == -1) {
perror("Chyba při zápisu");
close(fd);
return 1;
}
printf("Zapsáno %ld bajtů.\n", bytes_written);
// 3. Zavření souboru
close(fd);
return 0;
}
Co jsme se naučili?
Jak otevřít soubor
- Jak zapsat data do souboru