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;
}
~
~