xref: /DragonOS/user/apps/test_dup3/main.c (revision c635d8a9cfe25bc11779f323ef0c7d7a0f597d4a)
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <fcntl.h>
4 
5 int main() {
6     int fd = open("/history_commands.txt", O_RDONLY);
7     if (fd < 0) {
8         perror("Failed to open file");
9         return 1;
10     }
11 
12     int new_fd = 777;
13     int rt = dup3(fd, new_fd, O_CLOEXEC);
14     if (rt < 0) {
15         perror("Failed to duplicate file descriptor with flags");
16     }
17 
18     char buffer[100];
19     int bytes_read = read(new_fd, buffer, sizeof(buffer));
20     if (bytes_read < 0) {
21         perror("Failed to read data");
22         return 1;
23     }
24 
25     printf("Data:\n %.*s\n", bytes_read, buffer);
26 
27     close(fd);
28     close(new_fd);
29     return 0;
30 }