练习
CP指令代码实现
思路:
- 打开src.c(原文件)
- read src 保存在buf(缓冲中)
- 打开/创建 des.c(目标文件)
- 将buf写入des.c
- close两个文件
代码:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
int main(int argc,char **argv)
{
int fdSrc; //指向原文件的索引
int fdDes; //指向目标文件的索引
char * readBuf=NULL;
if(argc!=3)
{
printf("program error!\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;
}
修改文件内容
假设有一个文本文件内容如下:
SPEED=5
LENG=100
SCORE=90
LEVEL=95
通过代码实现修改数据
1.读文件操作
2.修改数据
char *p=strstr(readBuf,"LENG"); //找到这个字符串首地址
if(p==NULL)
{
printf("not found\n");
exit(-1);
}
p=p+strlen("LENG");
*p='5';
lseek(fdSrc,0,SEEK_SET); //让光标回到文件头
3.重新写入文件