Programowanie Systemowe w Języku C (powtórzenie)¶
Hello world¶
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("Hello world!\n");
return 0;
}
Kompilacja¶
gcc source.c -o program
– kopiluje kod źródłowy z plikusource.c
uzyskując w efekcie wykonywalny plik binarnyprogram
,gcc -Wall source.c -o program
– włącza wszystkie ostrzeżenia (-W
– warn,all
– wszystkie),gcc -o0 -g source.c -o program
– wyłącza optymalizacje i dodaje dane pozwalające na debugowanie programugcc -pthread source.c -o program
– włącza obsługę wątków standardu POSIXgcc -std=c99 source.c -o program
– kompilacja wg standardu C99.
Pomoc¶
man 2
,man 3
,man 3p
- http://www.cs.put.poznan.pl/akobusinska/
- http://www.cs.put.poznan.pl/ddwornikowski/
Pliki¶
Otwarcie pliku:
int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); int creat(const char *pathname, mode_t mode);
Duplikacja deskryptora:
int dup(int oldfd); int dup2(int oldfd, int newfd);
Zamknięcie pliku:
int close(int fd);
Usunięcie pliku:
int unlink(const char *pathname);
Odczyt z pliku:
int read(int fd, void *buf, size_t count);
Zapis do pliku:
int write(int fd, void *buf, size_t count);
Przesunięcie kursora:
long lseek(int fd, off_t offset, int whence);
Zadania¶
1. Napisz program append
który dopisuje na koniec pliku \(F\) słowa
\(w_0, w_1, ..., w_n\) (każde słowo w nowej lini). \(F\) i \(w_0,
w_1, ..., w_n\) są podawane przez argumenty/paramtery.
2. Napisz program set
który dopisuje na koniec pliku \(F\) słowa
\(w_0, w_1, ..., w_n\) (każde słowo w nowej lini). Słowo \(w_i\)
zostaje dopisane do pliku tylko jeśli \(w_i\) nie występuje w \(F\).
\(F\) i \(w_0, w_1, ..., w_n\) są podawane przez argumenty/paramtery.
3. Napisz program replace
który w pliku \(F\) zamienia linię \(w\)
na linię \(r\). \(F\), \(w\) i \(r\) są podawane przez
argumenty/paramtery.
4. Napisz program insort
który dopisuje do pliku \(F\) słowo \(w\)
(w nowej lini) w taki sposób, że \(F\) jest posortowany leksykograficznie
na wyjściu. Można założyć, że wejściowy \(F\) jest posortowany. \(F\) i
\(w\) są podawane przez argumenty/paramtery.