linux下打开文件并写入源码
#include<stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <string.h> int main () { int fd; char *buf = "liuuzhihaoyaojiayou"; fd = open("./file1",O_RDWR); // printf("fd= %d",fd); if(fd == -1){ printf("open file1 failed \n"); fd = open ("./file1",O_RDWR|O_CREAT,0600); if(fd>0){ printf("create file1 success!\n"); } } write(fd,buf,strlen(buf)); close(fd); return 0; } ~ ~ ~
linux实现cp命令
#include<stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <string.h> #include<stdlib.h> int main (int argc,char **argv)//复制的第一个文件给第二个文件例./mycp 1 2 { int fdsrc;//原文件的文件描述符 int fddes;//复制的新文件的文件描述符 char *readbuf=NULL;//定义一个指针空间并使其为空 if(argc !=3){//这是在这里做了一个判断,如果第一文件不存在还复制个毛线,直接退出 printf("pararm ereor\n"); exit(-1); } fdsrc=open(argv[1],O_RDWR);//打开第一个文件 int size = lseek(fdsrc,0,SEEK_END);//光标移动到最后面,的空间 lseek(fdsrc,0,SEEK_SET);//光标再移到最前面 readbuf=(char *)malloc(sizeof(char)*size + 8);//创建系统复制空间 int n_read = read(fdsrc,readbuf,size);//读取 fddes = open(argv[2],O_RDWR|O_CREAT|O_TRUNC,0600);//打开第二个文件,并清空内容 int n_write = write(fddes,readbuf,strlen(readbuf));//将系统内存写入 close(fdsrc);//关闭原文件 close(fddes);//关闭复制后的文件 return 0; } ~ ~