#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#define BUFFSIZE 4096
#define MODE 0644
int
main(int argc, char *argv[])
{
int r_fd, w_fd, nbyte;
char buf[BUFFSIZE];
if (argc !=3) {
fprintf(stderr, "useage:mcp file1 file2\n ");
return -1;
}
r_fd = open(argv[1], O_RDONLY);
if (r_fd == -1) {
fprintf(stderr, "can't open %s\n", argv[1]);
return -1;
}
w_fd = creat(argv[2], MODE);
if (w_fd == -1) {
fprintf(stderr, "can't create %s\n", argv[2]);
return -1;
}
while *1 > 0) {
if (write(w_fd, buf, nbyte) != nbyte) {
fprintf(stderr, "can't write %s\n", argv[2]);
return -1;
}
}
if (nbyte == -1) {
fprintf(stderr, "can't read %s\n", argv[1]);
return -1;
}
if (close(r_fd) == -1 || close(w_fd) == -1) {
fprintf(stderr, "can't close file\n");
return -1;
}
return 0;
}
$ cmp file1 fileで確認