unix/linux下一些常用函数

有些既可以操作目录又可以操作文件的不是分得那么清楚,这些命令只是总结一下而已,忘了的话,可以使用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 []);这个函数和上面的区别在于,不用列举所有指针数组的内容,只需数组名。

你可能感兴趣的:(linux/unix,unix,c语言)