Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <sys/types.h>
- #include <sys/wait.h>
- #include <fcntl.h>
- #define PERMS 0666
- int main() {
- int fd_source, fd_target;
- char buffer[4096];
- char filename_source[] = "src";
- char filename_target[] = "dst";
- ssize_t cread, cwrite;
- char *out_ptr = buffer;
- pid_t pid1 = fork();
- if(!pid1) {
- if((fd_source = open(filename_source, O_RDONLY)) < 0) {
- perror("open source file error");
- }
- if((fd_target = open(filename_target, O_CREAT | O_WRONLY, PERMS)) < 0 ) {
- perror("open target file error");
- }
- while((cread = read(fd_source, buffer, sizeof buffer)) > 0) {
- do {
- if((cwrite = write(fd_target, out_ptr, cread)) >= 0) {
- cread -= cwrite;
- out_ptr += cwrite;
- } else {
- break;
- }
- } while(cread > 0);
- }
- close(fd_source);
- close(fd_target);
- exit(0);
- }
- wait(NULL);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement