linux主要API的实现细节

linux主要API的实现细节

ID:37711535

大小:32.51 KB

页数:10页

时间:2019-05-29

linux主要API的实现细节_第1页
linux主要API的实现细节_第2页
linux主要API的实现细节_第3页
linux主要API的实现细节_第4页
linux主要API的实现细节_第5页
资源描述:

《linux主要API的实现细节》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、linux主要API的实现细节1内存控制篇calloc(配置内存空间)相关函数malloc,free,realloc,brk表头文件#include定义函数void*calloc(size_tnmemb,size_tsize);函数说明calloc()用来配置nmemb个相邻的内存单位,每一单位的大小为size,并返回指向第一个元素的指针。这和使用下列的方式效果相同:malloc(nmemb*size);不过,在利用calloc()配置内存时会将内存内容初始化为0。返回值若配置成功则返回一指针,失败则返回NULL。范例:/*动态配置10个structte

2、st空间*/#includestructtest{inta[10];charb[20];}main(){structtest*ptr=calloc(sizeof(structtest),10);}    free(释放原先配置的内存)相关函数malloc,calloc,realloc,brk表头文件#include定义函数voidfree(void*ptr);函数说明参数ptr为指向先前由malloc()、calloc()或realloc()所返回的内存指针。调用free()后ptr所指的内存空间便会被收回。假若参数ptr所指的内存空

3、间已被收回或是未知的内存地址,则调用free()可能会有无法预期的情况发生。若参数ptr为NULL,则free()不会有任何作用。malloc(配置内存空间)相关函数calloc,free,realloc,brk表头文件#include定义函数void*malloc(size_tsize);函数说明malloc()用来配置内存空间,其大小由指定的size决定。返回值若配置成功则返回一指针,失败则返回NULL。范例voidp=malloc(1024);/*配置1k的内存*/2文件操作篇close(关闭文件)相关函数open,fcntl,shutdown,u

4、nlink,fclose表头文件#include定义函数intclose(intfd);函数说明当使用完文件后若已不再需要则可使用close()关闭该文件,二close()会让数据写回磁盘,并释放该文件所占用的资源。参数fd为先前由open()或creat()所返回的文件描述词。返回值若文件顺利关闭则返回0,发生错误时返回-1。错误代码EBADF参数fd非有效的文件描述词或该文件已关闭。附加说明虽然在进程结束时,系统会自动关闭已打开的文件,但仍建议自行关闭文件,并确实检查返回值。creat(建立文件)相关函数read,write,fcntl,close,

5、link,stat,umask,unlink,fopen表头文件#include#include#include定义函数intcreat(constchar*pathname,mode_tmode);函数说明参数pathname指向欲建立的文件路径字符串。Creat()相当于使用下列的调用方式调用open()open(constchar*pathname,(O_CREAT

6、O_WRONLY

7、O_TRUNC));错误代码关于参数mode请参考open()函数。返回值creat()会返回新的文件描述词,若有错误

8、发生则会返回-1,并把错误代码设给errno。EEXIST参数pathname所指的文件已存在。EACCESS参数pathname所指定的文件不符合所要求测试的权限EROFS欲打开写入权限的文件存在于只读文件系统内EFAULT参数pathname指针超出可存取的内存空间EINVAL参数mode不正确。ENAMETOOLONG参数pathname太长。ENOTDIR参数pathname为一目录ENOMEM核心内存不足ELOOP参数pathname有过多符号连接问题。EMFILE已达到进程可同时打开的文件数上限ENFILE已达到系统可同时打开的文件数上限附加说明creat()无

9、法建立特别的装置文件,如果需要请使用mknod()。open(打开文件)相关函数read,write,fcntl,close,link,stat,umask,unlink,fopen表头文件#include#include#include定义函数intopen(constchar*pathname,intflags);intopen(constchar*pathname,intflags,mode_tmode);函数说明参数pathname指向欲打

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。