linux基础函数
- 格式:docx
- 大小:11.00 KB
- 文档页数:1
linux 系统时间函数
Linux系统提供了许多用于操作系统时间和日期的函数。
以下是一些常见的函数。
1. time_t time(time_t *t):返回当前时间的时间戳,以自1970年1月1日00:00:00 UTC以来的秒数为单位。
如果t不为空,则时间戳也被存储在t指向的位置。
2. struct tm *localtime(const time_t *timep):将给定的时间戳转换为本地时间。
返回一个指向tm结构的指针,其中包含本地时间的小时,分钟,秒等。
3. struct tm *gmtime(const time_t *timep):将给定的时间戳转换为GMT时间(格林威治标准时间)。
返回一个指向tm结构的指针,其中包含GMT时间的小时,分钟,秒等。
4. time_t mktime(struct tm *tm):将给定的tm结构(其中包含小时,分钟,秒等)转换为对应的时间戳。
5. char *ctime(const time_t *timep):将给定的时间戳转换为一个字符串,表示为"Day Mon dd hh:mm:ss yyyy"的格式。
6. int gettimeofday(struct timeval *tv, struct timezone *tz):获取当前时间和时区。
返回一个表示微秒级别的时间戳,并将tv指向的结构中的秒数和微秒
数及tz指向的结构中的本地时区信息填充。
Linux常用C函数o pen和r ead以及write的使用说明2008-03-19 13:56open(打开文件)相关函数read,write,fcntl,close,link,stat,umask,unlink,fopen表头文件 #includ e<sys/types.h>#includ e<sys/stat.h>#includ e<fcntl.h>定义函数 int open( constchar * pathna me, int flags);int open( constchar * pathna me,int flags, mode_t mode);函数说明参数path name指向欲打开的文件路径字符串。
下列是参数f lags所能使用的旗标:O_RDON LY 以只读方式打开文件O_WRON LY 以只写方式打开文件O_RDWR以可读写方式打开文件。
上述三种旗标是互斥的,也就是不可同时使用,但可与下列的旗标利用O R(|)运算符组合。
O_CREA T 若欲打开的文件不存在则自动建立该文件。
O_EXCL如果O_CR EAT 也被设置,此指令会去检查文件是否存在。
文件若不存在则建立该文件,否则将导致打开文件错误。
此外,若O_CRE AT与O_EXCL同时设置,并且欲打开的文件为符号连接,则会打开文件失败。
O_NOCT TY 如果欲打开的文件为终端机设备时,则不会将该终端机当成进程控制终端机。
O_TRUN C 若文件存在并且以可写的方式打开时,此旗标会令文件长度清为0,而原来存于该文件的资料也会消失。
O_APPE ND 当读写文件时会从文件尾开始移动,也就是所写入的数据会以附加的方式加入到文件后面。
linux读写函数在Linux中,文件的读写操作是通过系统调用来实现的。
系统调用是一种在用户空间和内核空间进行通信的机制,用户可以通过系统调用访问内核提供的各种服务,包括文件读写。
Linux提供了多种文件读写函数,下面将介绍一些常用的读写函数。
1. open函数:用于打开文件,返回一个文件描述符。
其原型为:```#include <fcntl.h>int open(const char *pathname, int flags, mode_t mode);````pathname`表示文件路径,`flags`表示打开文件的模式,`mode`表示新建文件时的权限。
打开成功时返回一个非负整数作为文件描述符,失败时返回-12. read函数:用于从文件中读取数据。
其原型为:```#include <unistd.h>ssize_t read(int fd, void *buf, size_t count);````fd`为文件描述符,`buf`为读取数据后存放的缓冲区,`count`为要读取的字节数。
函数返回实际读取的字节数,若返回值为0,则表示到达文件末尾。
3. write函数:用于向文件中写入数据。
其原型为:```#include <unistd.h>ssize_t write(int fd, const void *buf, size_t count);````fd`为文件描述符,`buf`为待写入数据的缓冲区,`count`为要写入的字节数。
函数返回实际写入的字节数,若返回值小于`count`,则可能是因为设备已满或者写入出错。
4. lseek函数:用于设置文件偏移量,即指定下一次读写操作的位置。
其原型为:```#include <unistd.h>off_t lseek(int fd, off_t offset, int whence);````fd`为文件描述符,`offset`为偏移量,`whence`为相对位置。
linux system函数详解Linux是一个开源的操作系统内核,以稳定、高效和安全性闻名。
在Linux系统中,系统函数是一组用于实现特定功能的函数集合。
这些函数提供了访问操作系统核心功能的接口,使程序能够与操作系统进行交互。
在Linux系统函数的详解中,以下是一些常用的系统函数:1. open()函数:该函数用于打开文件,并返回一个文件描述符。
文件描述符是操作系统分配给打开的文件的整数值,可以用于后续的文件操作,如读取和写入。
2. read()函数:read()函数用于从已打开的文件中读取数据。
它接受三个参数:文件描述符、数据缓冲区的地址和要读取的字节数。
该函数将读取的数据存储在缓冲区中,并返回实际读取的字节数。
3. write()函数:write()函数用于向已打开的文件写入数据。
它接受三个参数:文件描述符、要写入的数据缓冲区的地址和要写入的字节数。
该函数将缓冲区中的数据写入文件,并返回实际写入的字节数。
4. close()函数:close()函数用于关闭先前打开的文件。
它接受一个参数,即要关闭的文件描述符。
该函数将释放文件描述符并断开与文件的连接。
5. fork()函数:fork()函数用于创建一个子进程。
调用该函数后,父进程将创建一个新的子进程,并且子进程将继承父进程的代码段、数据段和堆栈等信息。
可以使用fork()函数来实现并行处理和任务分发。
6. exec()函数:exec()函数用于在当前进程中执行一个新的程序。
它接受两个参数:要执行的程序路径和命令行参数。
调用exec()函数后,当前进程的代码和数据将被替换为新程序的代码和数据,从而实现程序的替换执行。
这些系统函数是Linux系统编程中常用的一部分。
通过熟练使用这些系统函数,我们可以实现文件操作、进程控制、程序执行等功能。
同时,深入了解这些系统函数的原理和底层机制也有助于优化程序的性能和稳定性。
总之,熟悉和理解Linux系统函数是成为一名优秀的系统开发工程师的必备技能之一。
1: 系统调用:读一个文件函数原型:ssize_t read(int fd, void *buf, size_t size) ;头文件:#include参数:略返回值:1> = 0 :达到文件结尾3> > 0 :返回读到的实际字节数备注:略2:系统调用:写入一个文件函数原型:ssize_t write(int fd, void *buf, size_t size) ;头文件:#include参数:略返回值:1> > 0 :返回写入的实际字节数目----------------------------------注意:当返回值不等于size时,则出现I/O错误备注:略3:系统调用:返回本进程的ID函数原型:pid_t getpid() ;头文件:#include参数:无返回值:1> > 0 :返回本进程ID2>4:系统调用:返回本进程的组ID函数原型:gid_t getgid() ;头文件:#include参数:无返回值:1> > 0 :返回组ID5:系统调用:复制一个文件描述符(一个参数)函数原型:int dup(int fd) ;头文件:#include参数:略返回值:1> >= 0 :返回一个文件描述符备注:此函数的结果就是两个文件符指向一个相同的文件6:系统调用:复制一个文件描述符(两个参数)函数原型:int dup(int fd1, int fd2) ;头文件:#include参数:fd1 :已知的fdfd2 :要复制到的fd返回值:1> >=0 :调用成功备注:此函数的分成三种情况:1> 若fd2已打开,且fd2 != fd1,则先将fd2关闭2> 若fd2已打开,且fd2 == fd1,则直接返回3> 若fd2没有打开,则直接复制7:系统调用:获取文件属性的三个函数函数原型:int stat(const char *pathname, stat *buf) ;int fstat(int fd, stat *buf) ;int lstat(int fd, stat *buf) ;头文件:#include#include参数:略返回值:如果返回负数,则调用失败备注:当操作的文件是个链接文件时1> stat和fstat返回的是链接指向文件的属性2> lstat返回的是链接文件本身的属性8:系统调用:判断文件类型的几个宏(Question:参数) 头文件:(Question)普通文件:S_ISREG()目录文件:S_ISDIR()链接文件:S_ISLNK()块设备:S_ISBLK()字符设备:S_ISCHR()管道:S_ISFIFO()SOCKET :S_ISSOCK()9:系统调用:测试文件存取模式函数原型:int access(const char *pathname, int mode) 头文件:#include#include#include参数:mode的取值情况:---------------1> 存在:F_OK (文件是否存在)2> 可读:R_OK3> 可写:W_OK4> 执行:X_OK返回值:如果失败,返回一个负数备注:10:系统命令:置位设置-用户-ID位chmod u+s file11:系统结构:文件存储权限字S_ISUID 设置-用户-IDS_ISGID 用户-组-IDS_ISIVX 粘住位S_IRUSR 用户相关S_IWUSRS_IXUSRS_IRGRP 组相关S_IWGRPS_IXGRPS_IROTH 其他用户相关S_IWOTHS_IXOTH12:系统函数:屏蔽标记函数函数原型:mode_t umask(mode_t masks) ;头文件:#include参数:要屏蔽的存储方式字(mode_t)返回值:返回原来的屏蔽方式字备注:1> 此函数如果出错,则不会返回2> 这是UNIX中出错不会返回的仅有的几个函数之一13:系统调用:改动文件存取模式函数原型:int chmod(const char *pathname, mode_t mode) ;int fchmode(int fd, mode_t mode) ;头文件:#include#include参数:略返回值:如果出错,则返回一个负数备注:fchmod能设置一个已打开文件的存储访问权限14:系统调用:截短文件的函数函数原型:int truncate(const char *pathname, off_t length) ;int ftruncate(int fd, off_t length) ;头文件:#include#include参数:off_t (截短到该长度)返回值:如果失败,则返回一个负数备注:1> length可正可负2> 可能出现“文件空洞”15:标准函数:设置流的缓冲类型函数原型:int setvbuf(FILE *fstream, void *buf, int mode, size_t size 头文件:#include参数:buf :if buf==NULL,则由系统来分配缓存,叫做系统缓存if buf!=NULL,则来使用分配的缓存,叫做用户缓存size:分配的用户缓存大小mode:_IOFBF :I/O全缓存_IOLBF :I/O行缓存_IONBF :I/O不缓存参数:如果失败,则返回一个负数16:标准函数:缓冲流函数原型:int fflush(FILE *fstream) ;头文件:#include参数:if fstream == NULL,则强制刷新全部流if fstream != NULL,则刷新特定流返回值:如果失败,则返回一个负数17:标准函数:打开文件的三个函数函数原型:FILE* fopen(const char *pathname, char *mode) ;FILE* fropen(const char *pathname, char *mode) ;FILE* fdopen(int fd, char *mode) ;头文件:#include参数:略返回值:略备注:1> fopen :路径 FILE*2> fropen :重新打开一个文件3> fdopen :把FILE* 和一个fd联系起来I/O的几种type类型1> r :为读而打开2> r+ :为读和写而打开3> w :使文件长度称为0,或为写而创建文件4> w+ :使文件长度成为0,为读和写而打开5> a :添加,为在文件尾写而打开或为了写而创建文件6> a+ :为在文件尾读和写而打开或创建19:标准函数:关闭一个文件流函数原型:int fclose(FILE* fstream) ;头文件:#include参数:略返回值:如果出错,返回一个负数备注:系统在关闭一个文件时,会自动刷新该文件相关的流1> 输入数据:全部被抛弃2> 输出数据:全部被刷新20:标准函数:读取一个字符(三个)函数原型:int getchar() ;int getc(FILE *fstream) ;int fgetc(FILE *fstream) ;头文件:#include参数:略返回值:1> EOF :文件结束2> >=0 :读取的字符的ASCII码3> getc和fgetc的差别getc是个宏2> 返回值一定要用int类型,不是char类型3> 三个函数遇见文件结束或I/O错误时,都会返回负数,这个时候应该用两个函数来判断是那种情况:feof(FILE *fstream) ; // 是否文件结尾?ferror(FILE *fstream) ; // 是否出现错误?21:标准函数:测试是否到达一个文件流的结束函数原型:int feof(FILE *fstream) ;头文件:#include参数:略返回值:略22:标准函数:测试一个文件流是否出现错误函数原型:int ferror(FILE *fstream) ;头文件:#include参数:略返回值:略23:标准函数:字符回送函数函数原型:int ungetc(int c, FILE *fsteam) ;头文件:#include参数:略返回值:1> 如果回送成功,则返回字符c2> 如果失败,则返回一个负数24:标准函数:字符输出函数函数原型:int putchar(int c) ;int putc(int c, FILE *fstream) ;int fputc(int c, FILE *fstream) ;头文件:#include参数:略返回值:如果失败,则返回一个负数备注:其他相关事项和put类型相同25:标准函数:每次一行I/O的输入函数函数原型:int fgets(const char *buf, size_t size, FILE *fstream) ;头文件:#include参数:略返回值:1> 如果成功,返回实际写入的字节数2> 如果返回值和size不相等,则出现错误26:标准函数:每次一行I/O的输出函数函数原型:int fputs(const char *buf, FILE *fstream) ;头文件:#include参数:略返回值:1> >=0 :返回实际读取的字节数2> fgets函数中,如果缓存大小是size,则最多能存放n-1个字符(包括‘\n’符号)2> fputs函数中,系统推荐在buf[size-2]字符=’\n’,不过并不强制这样做27:标准函数:读二进制文件或数据类型函数原型:int fread(void *buf, size_t objsize, int objnum, FILE *fs头文件:#include参数:buf :缓存首地址objsize :一个字节所占的字节数目objnum :对象的数目返回值:1> >=0 :返回读到的对象数目2>28:标准函数:写二进制文件或数据类型函数原型:int fwrite(const void *buf,size_t size, int num, FILE *f)头文件:#include参数:buf :缓存首地址objsize :一个字节所占的字节数目num :要写入的字节数目返回值:如果返回值和num不相等,那么就出现了错误备注:fread和fwrite函数是有局限性的,因为各种操作系统同一种类型所占的空间大小也是有差别的29:标准函数:定位流函数函数原型:int fseek(FILE *fstream, long offset, int whence) ;头文件:#include参数:offset :偏移量whence :从什么地方开始(SET,END,CURSOR)返回值:如果定位失败,则返回一个负数30:标准函数:重置文件流函数原型:int rewind(FILE *fstream)头文件:#include参数:略返回值:略31:标准函数:建立临时文件(两个)函数原型:char* tmpnam(char *str) ;FILE* tmpfile(void) ;头文件:#include参数:if (str == NULL)路径名会存储在str中if (str != NULL)路径名存储在系统的静态空间里面返回值:tmpnam :返回临时文件的路径名tmpfile :返回临时文件的指针。
linux核心函数Linux 内核是操作系统的核心部分,它提供了操作系统的核心功能,包括进程管理、内存管理、文件系统等。
Linux 内核的源代码中包含了大量的函数,用于实现各种操作系统的功能。
以下是一些Linux 内核中常见的核心函数,它们扮演着关键的角色:1.进程管理函数:–fork():创建一个新的进程。
–exec():在当前进程中执行一个新的程序。
–wait():等待子进程结束。
–exit():终止当前进程。
2.调度和任务管理函数:–schedule():进行进程调度。
–yield():主动让出CPU,将当前进程移动到就绪队列的末尾。
–wake_up_process():唤醒一个等待中的进程。
3.内存管理函数:–kmalloc():在内核中分配内存。
–kfree():释放内核中的内存。
–vmalloc():在虚拟地址空间中分配内存。
4.文件系统函数:–open():打开一个文件。
–read():从文件中读取数据。
–write():向文件中写入数据。
–close():关闭文件。
5.设备驱动函数:–register_chrdev():注册字符设备。
–unregister_chrdev():注销字符设备。
–request_irq():注册中断处理函数。
6.网络函数:–socket():创建套接字。
–bind():将套接字与地址绑定。
–listen():侦听传入连接请求。
–accept():接受传入的连接请求。
7.定时器和时钟函数:–timer_create():创建一个定时器。
–timer_settime():设置定时器的时间。
–gettimeofday():获取当前时间。
8.同步和互斥函数:–spin_lock():获取自旋锁。
–spin_unlock():释放自旋锁。
–mutex_lock():获取互斥锁。
–mutex_unlock():释放互斥锁。
这些函数仅仅是Linux 内核中众多函数的一小部分,Linux 内核的源代码非常庞大而复杂,包含了各种各样的功能和模块。
linux 系统函数rm 概述1. 引言1.1 概述Linux系统是一种开源操作系统,广泛应用于服务器、嵌入式设备和个人计算机等各个领域。
它提供了许多强大的功能和丰富的函数库来方便用户进行各种操作。
其中,rm命令是一个常用的命令之一,用于删除文件或目录。
在本篇文章中,我们将对Linux系统函数rm进行概述,并深入探讨其功能、使用方法以及注意事项。
1.2 文章结构本文将按照以下结构展开对Linux系统函数rm的介绍和分析:- 引言:简要介绍文章目的和内容安排。
- Linux系统函数rm:介绍rm命令的功能、使用方法和注意事项。
- rm命令可选参数:详细解释rm命令中常用的可选参数及其作用。
- rm命令实例与案例分析:通过示例演示不同场景下如何使用rm命令,并进行案例分析讨论。
- 结论:对文章内容进行总结,并展望Linux系统函数rm的未来发展方向。
1.3 目的本文旨在帮助读者全面了解Linux系统函数rm的相关知识。
通过阅读本文,读者将能够掌握rm命令的基本使用方法,并了解如何结合不同参数进行更加灵活和高效的文件删除操作。
此外,我们还将通过实例和案例分析,向读者展示rm命令在不同场景下的具体应用,并分享一些使用rm命令时需要注意的问题。
在最后的结论中,我们还将对Linux系统函数rm进行一定的展望,探讨其可能在未来发展中带来的新功能和改进。
通过阅读本文,读者将能够提升对Linux 系统函数rm的理解和运用能力,为自己在日常工作中更好地使用Linux系统提供参考和指导。
2. Linux 系统函数rm2.1 功能介绍Linux系统中的rm命令用于删除一个文件或者目录。
rm是remove的缩写,它允许用户在命令行中快速删除不再需要的文件和目录。
2.2 使用方法要使用rm命令删除一个文件或目录,只需在终端中输入"rm"加上要删除的文件或目录的路径即可。
例如,要删除名为"file.txt"的文件,可以运行以下命令:```bashrm file.txt```如果要删除一个目录及其内容,则需要使用"-r"参数来递归地删除目录中的所有文件和子目录。
linux系统函数Linux系统函数是在Linux操作系统中使用的函数库。
这些函数提供了许多常用的功能,如文件操作、进程管理、网络通信等等。
本文将介绍一些常用的Linux系统函数及其用法。
一、文件操作函数1. fopenfopen函数用于打开文件。
它的原型如下:FILE *fopen(const char *path, const char *mode);其中,path是文件路径,mode是打开文件的模式。
mode可以是以下之一:- 'r':只读模式,打开文件用于读取。
- 'w':写模式,打开文件用于写入。
如果文件不存在,则创建一个新文件;如果文件已存在,则清空文件内容。
- 'a':追加模式,打开文件用于写入。
如果文件不存在,则创建一个新文件;如果文件已存在,则在文件末尾追加内容。
- 'r+':读写模式,打开文件用于读取和写入。
- 'w+':读写模式,打开文件用于读取和写入。
如果文件不存在,则创建一个新文件;如果文件已存在,则清空文件内容。
- 'a+':读写模式,打开文件用于读取和写入。
如果文件不存在,则创建一个新文件;如果文件已存在,则在文件末尾追加内容。
fopen函数返回一个指向文件的指针。
如果打开文件失败,则返回NULL。
fclose函数用于关闭文件。
它的原型如下:int fclose(FILE *stream);其中,stream是指向要关闭的文件的指针。
如果关闭文件成功,则返回0;否则返回EOF。
3. freadfread函数用于从文件中读取数据。
它的原型如下:size_t fread(void *ptr, size_t size, size_t count, FILE *stream);其中,ptr是一个指向要读取数据的缓冲区的指针;size是每个数据项的大小;count是要读取的数据项数;stream是指向要读取的文件的指针。
Linux 常用C函数(文件操作篇)close(关闭文件)open,fcntl,shutdown,unlink,fclose表头文件 #include<unistd.h>定义函数 int close(int fd);函数说明当使用完文件后若已不再需要则可使用close()关闭该文件,二close()会让数据写回磁盘,并释放该文件所占用的资源。
参数fd为先前由open()或creat()所返回的文件描述词。
返回值若文件顺利关闭则返回0,发生错误时返回-1。
错误代码 EBADF 参数fd 非有效的文件描述词或该文件已关闭。
附加说明虽然在进程结束时,系统会自动关闭已打开的文件,但仍建议自行关闭文件,并确实检查返回值。
范例参考open()creat(建立文件)相关函数 read,write,fcntl,close,link,stat,umask,unlink,fopen表头文件 #include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>定义函数 int creat(const char * pathname, mode_tmode);函数说明参数pathname指向欲建立的文件路径字符串。
Creat()相当于使用下列的调用方式调用open()open(const char * pathname ,(O_CREAT|O_WRONLY|O_TRUNC));错误代码关于参数mode请参考open()函数。
返回值 creat()会返回新的文件描述词,若有错误发生则会返回-1,并把错误代码设给errno。
EEXIST 参数pathname所指的文件已存在。
EACCESS 参数pathname 所指定的文件不符合所要求测试的权限EROFS 欲打开写入权限的文件存在于只读文件系统内EFAULT 参数pathname 指针超出可存取的内存空间EINVAL 参数mode 不正确。
linux基础函数
Linux操作系统提供了大量的基础函数和工具,用于执行各种操作。
这些函数和工具包括文件操作、进程管理、系统调用等。
文件操作:open()和close():用于打开和关闭文件。
read()和write():用于读取和写入文件内容。
mkdir()和rmdir():创建和删除目录。
rename()和unlink():重命名文件或目录、删除文件。
进程管理:fork():创建新进程。
exec():在进程中执行一个新程序。
wait()和waitpid():等待子进程完成执行。
kill():发送信号给进程。
系统调用:sysctl():获取或设置内核参数。
ioctl():设备I/O控制。
mmap():将文件或设备映射到内存。
用户和权限:chmod()和chown():修改文件权限和所有者。
getuid()和getgid():获取用户和组ID。
setuid()和setgid():设置用户和组ID。
网络编程:socket():创建套接字。
bind()和connect():将套接字与地址绑定、连接到远程地址。
send()和recv():发送和接收数据。
其他:malloc()和free():动态内存分配和释放。
printf()和scanf():标准输入输出。
这些函数提供了对Linux操作系统各种功能的访问,它们通常是通过C语言的系统调用或标准库来实现的。
利用这些函数,开发者可以编写各种类型的程序,从简单的脚本到复杂的系统级应用。