一、strstr
1.头文件
#include <string.h>
2.函数原型
char *strstr(const char *haystack, const char *needle);
3.功能
在一个字符串haystack中查找另一个字符串needle的第一次出现,并返回该位置的指针,如果找不到,则返回NULL。
4.代码示例
输入一个文件名 *.h 找文件中,所有的#define 。
找到后,按如下格式输出 #define PI 3.14 /home/linux/1.h 25 -----宏的内容 文件名 行号
#include <stdio.h>
#include <stdlib.h>
#include <string.h>// ./a.out srcfile
int main(int argc, char **argv)
{if(argc<2){printf("usage:%s srcfile\n",argv[0]);return 1;}// 1.h 123.h aaa.h 1.23.4.h 1char*end = argv[1];end = &end[strlen(end)-2];if(strlen(argv[1])<=2 && 0!= strcmp(end,".h")){printf("pls input head file\n");return 1;}FILE* fp = fopen(argv[1],"r");if(NULL == fp){printf("fopen error\n");return 1;}int num =1;while(1){char buf[512]={0};if(NULL == fgets(buf,sizeof(buf),fp)){break;}if(strstr(buf,"#define")){buf[strlen(buf)-1]='\0';printf("%s %s %d\n" ,buf,argv[1],num);}num++;}fclose(fp);//system("pause");return 0;
}
二、symlink
1.头文件
#include<unistd.h>
2.函数原型
int symlink(const char *target,const char *linkpath);
3.功能
创建一个链接向oldpath文件的新符号链接文件
4.命令行
链接文件:file.txt -> hello.c
软链接文件、符号链接文件
eg:In -s 123 softlink (快捷方式)
5.代码实现
#include <stdio.h>
#include <unistd.h>int main(int argc, char **argv)
{//复制到的路径需要设置一个文件名//即/home/linux/Desktop/1.txt而不是/home/linux/Desktopint ret=symlink("/home/linux/1.txt", "/home/linux/Desktop/1.txt");if(-1==ret){printf("symlink error\n");return 1;}// system("pause");return 0;
}
三、remove
1.函数原型
int remove(const char *pathname);
2.功能
删除一个文件
3.参数
pathname:删除文件的路径
4.返回值
成功返回0
失败返回-1
5.代码实现
#include <stdio.h>
int main(int argc, char **argv)
{int ret = remove("/home/linux/Desktop/1.txt");if (-1 == ret){printf("remove error\n");return 1;}// system("pause");return 0;
}
四、rename
1.命令行
mv / rename
2.函数原型
int rename(const char *oldpath, const char *newpath);
3.功能
将一个老的路径名改为新的路径
4.参数
oldpath:老路径名
newpath:新路径名
5.返回值
成功返回0
失败返回-1
6.代码实现
#include <stdio.h>int main(int argc, char **argv)
{int ret = rename("4.txt", "3.txt");if (-1 == ret){printf("rename error\n");return 1;}// system("pause");return 0;
}
五、link
ln 1 2
1.头文件
#include <unistd.h>
2.函数原型
int link(const char *oldpath, const char *newpath);
3.功能
创建一个硬链接文件
4.参数
oldpath:要链接向的文件
newpath:创建的新硬链接文件
5.返回值
成功返回0
失败返回-1
5.代码实现
#include <stdio.h>
#include <unistd.h>int main(int argc, char **argv)
{int ret=link("3.txt", "4.txt");if(-1==ret){printf("link error\n");return 1;}// system("pause");return 0;
}
六、truncate
1.头文件
#include <unistd.h>#include <sys/types.h>
2.函数原型
int truncate(const char *path, off_t length);
3.功能
出错相关函数接口
截断文件
4.参数
path:文件路径
length:截断后文件长度
5.代码实现
#include<stdio.h>
#include <unistd.h>
#include <sys/types.h>int main(int argc, char **argv)
{int ret=truncate("3.txt",264);if(-1==ret){printf("truncat error\n");return 1;}// system("pause");return 0;
}