diff options
[SP/P02] Solved exercises from second practice
1 files changed, 32 insertions, 0 deletions
| -rw-r--r-- | Year 3/System programming/Practice02/ex1-2.c | 32 |
diff --git a/Year 3/System programming/Practice02/ex1-2.c b/Year 3/System programming/Practice02/ex1-2.c new file mode 100644 index 0000000..ef98a27 --- /dev/null +++ b/Year 3/System programming/Practice02/ex1-2.c @@ -0,0 +1,32 @@ +#include <fcntl.h> // open, close, O_RDONLY +#include <unistd.h> // read +#include <stdio.h> // printf, perror + +int main(int argc, char* argv[]) { + int f1 = open(argv[1], O_RDONLY); + if (f1 < 0) { + perror("open"); + return 1; + } + + int f2 = dup(f1); + if (f2 < 0) { + perror("dup"); + return 2; + } + + int readTimes = 10; // няколко пъти + char buf1, buf2; + while (readTimes > 0 && read(f1, &buf1, 1) && read(f2, &buf2, 1)) { + printf("%c%c", buf1, buf2); + readTimes--; + } + + close(f1); + + while (read(f2, &buf2, 1)) { + printf("%c", buf2); + } + + close(f2); +} |
