|
CS456 - Systems Programming
Spring 2026
|
Displaying ./code/feb5/my_cat.c
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#define BUF 2048
int main (int argc, char **argv){
if (argc < 2){
//fprintf(stderr, "Usage: %s file\n",argv[0]);
//exit(1);
int len = strlen(argv[0]);
write(2, "Usage: ", 7);
write(2, argv[0], len);
write(2, " file\n", 6);
return 1;
}
char data[BUF];
int rt;
//open a file
int fd = open(argv[1], O_RDONLY);
printf("file descriptor = %d\n", fd);
if(fd == -1){
write(2, "open failed\n",12);
return -1;
}
rt = read(fd, data, BUF);
printf("bytes read: %d\n", rt);
//printf("Number of bytes read: %d\n", rt);
int written = write(1, data, rt);
printf("bytes written: %d\n", written);
close(fd);
return 0;
}
|