文件IO
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#define READ_LEN 1024
int main(int argc, char **argv) {
if (argc < 3) {
fprintf(stderr, "%s:Missing parameters\n", argv[0]);
exit(1);
}
int fd_src = 0;
fd_src = open(argv[1], O_RDONLY);
if (fd_src < 0) {
fprintf(stderr, "open():%s", strerror(errno));
exit(2);
}
int fd_dst = 0;
fd_dst = open(argv[2], O_CREAT | O_TRUNC | O_WRONLY);
if (fd_dst < 0) {
close(fd_src);
fprintf(stderr, "open():%s", strerror(errno));
exit(3);
}
char buf[READ_LEN] = {0};
int ret = 0;
while (1) {
ret = read(fd_src, buf, READ_LEN);
if (ret == 0)
break;
if (ret == -1) {
fprintf(stderr, "read():%s", strerror(errno));
break;
}
ret = write(fd_dst, buf, strlen(buf));
if (ret < 0) {
fprintf(stderr, "write():%s", strerror(errno));
break;
}
}
close(fd_src);
exit(0);
}
标准IO
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#define READ_LEN 1024
int main(int argc, char **argv)
{
if(argc < 3)
{
fprintf(stderr,"%s:Missing parameters\n",argv[0]);
exit(1);
}
FILE * file_src = NULL;
file_src = fopen(argv[1],"r");
if(file_src == NULL)
{
fprintf(stderr,"fopen():%s",strerror(errno));
exit(2);
}
FILE * file_dst = NULL;
file_dst = fopen(argv[2],"w");
if(file_dst == NULL)
{
fclose(file_src);
fprintf(stderr,"fopen():%s",strerror(errno));
exit(3);
}
int ret = 0;
char *ptr = NULL;
char buf[READ_LEN] = {0};
while(1)
{
ptr = fgets(buf,READ_LEN,file_src);
if(ptr == NULL)
break;
ret = fputs(buf,file_dst);
if(ret < 0)
break;
}
fclose(file_src);
fclose(file_dst);
exit(0);
}