有些既可以操作目录又可以操作文件的不是分得那么清楚,这些命令只是总结一下而已,忘了的话,可以使用man查看。
1、目录操作
(1)mkdir("目录名",权限) 创建目录
(2)rmdir("目录名") 删除目录
(3)opendir("目录名") 打开目录
(4)readdir("目录流") 读取目录
(5)closedir("目录流") 关闭目录
(6)chdir("目录名") 改变当前工作目录
(7)getcwd(字符数组名,字符数组长度) 取得当前工作目录
(8)rename(旧文件名/目录名,新文件名/目录名)
2、文件操作
(1)access(文件名,权限)判断文件存取权限
(2)open(const char *pathname, int oflag, ... ) 打开文件
O_RDONLY 只读模式
O_WRONLY 只写模式
O_RDWR 读写模式
打开/创建文件时,必须选择三个常量中的一个,且只能为一个,其他的oflag可以备选,可以组合
每一个进程在启动的时候会打开三个文件,分别是标准输入(stdin)、标准输出(stdout)和标准出错文件(stderr),
它们的文件描述符分别是0,1,2.。每次用open函数创建时,返回的文件描述符从最小的开始(除0,1,2)。
(3)close(文件描述符)关闭文件
(4)unlink(文件名) 删除文件
(5)remove(char * filename)删除文件或目录
如果参数filename 为一文件,则调用unlink()处理;若参数filename 为一目录,则调用rmdir()来处理。
(6)read(文件描述符,内存地址,字节数)读文件
(7)write(文件描述符,内存地址,字节数)写文件
(8)lseek(文件描述符,偏移数,偏移位置)文件定位
3、系统标识
(1)gethostname(地址,长度) 返回本地主机的标准主机名
4时间日期函数
(1)time(time_t* mem)获得当前时间(以秒为单位)从1970开始。直接与内核交互的函数,
而下面的函数是通过time()这个函数来实现的。
(2)localtime(const time_t *tp)将日历时间变换为本地时间,返回一个结构体。可以用结构体
调用成员输出想要的。
(3)strftime(char *s,size_t samx,const char *fmt,const struct tm *tp)转换为日期和时间格式。
直接通过fmt格式输出s的值即可,比上面的方便。
5、进程类函数
sleep(unsigned int seconds)进程暂停seconds。
atexit(函数名)注册程序正常终止时要被调用的函数。进程退出时,最后登记,最先调用;最先登记,最后调用。和C++构造函数与析构函数类似。
exit(int status)status返回0表示程序正常结束,非0表示程序非正常结束。对于C语言没有什么,而对于C++,不会析构局部对象。
_exit(int status)与exit的区别在于它不调用注册函数,直接退出。在main()中只有return才是正常结束。
int system(const char * string); 执行string所表示的命令,将产生一个新的进程。
fork()创建一个子进程
wait(int* statloc)收集这个子进程的信息,并把它彻底销毁后返回。其中statloc用于接收终止的子进程返回状态。一般为NULL。
exec系列,这里展示两个常见的。表示的含义为在进程空间装入新程序来覆盖旧程序,新程序从头开始。
int execlp(const char * file,const char * arg,...,(char *)0);会从path环境变量选取所指目录中符合参数的file文件名。
int execvp(const char *file ,char * const argv []);这个函数和上面的区别在于,不用列举所有指针数组的内容,只需数组名。