Linux开发
|宇文拓>
每天进步一点点
展开
-
Linux内核分析(一)通过汇编代码,理解程序在计算机中是如何运行的
作者:于波 声明:原创作品转载请注明出处 来源:《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 首先说一下背景,这篇博文是网易云课堂中《Linux内核分析》课程的一个作业,要求通过分析汇编代码,解释清楚程序在计算机中是如何运行的;函数调用和返回的过程中,栈是如何变化的。 这篇文章假设读...原创 2018-09-08 10:14:14 · 800 阅读 · 0 评论 -
Linux系统调用 - 文件IO复用 (poll 与 ppoll)
这两个系统调用的作用,是在指定的文件描述符上监听发生的任何文件事件,以便继续执行后续的文件IO操作。其作用与最古老的文件IO复用接口select差不多,但是poll没有最多1024个文件描述符的限制,因此适用的范围更大。而且,poll接口中使用的数据结构的组织更加直观,操作更加方便。说到select系统调用的1024个文件描述符的数量限制,完全是历史遗留的产物,因为在select系统调用被创建...原创 2019-04-18 23:26:13 · 1362 阅读 · 0 评论 -
Linux系统调用 - 获取文件状态 (stat, lstat和fstat)
获取文件状态的系统调用有三个,分别是stat,fstat和lstat,其实他们的作用是一样的,都是查询某个文件的状态。如果查询成功,会把文件状态的信息填充在一个stat结构体中。他们的函数定义分别如下:int stat(const char *path, struct stat *buf);int fstat(int fd, struct stat *buf);int lstat(con...原创 2018-11-18 22:13:21 · 6612 阅读 · 0 评论 -
Linux系统调用 - shutdown
shutdown()系统调用的功能是关闭一个套接字的指定方向上的通信,函数原型:int shutdown(int sockfd, int how);参数how可以取的值分别为:SHUT_RD(关闭读取),SHUT_EW(关闭写入)和SHUT_RDWR(关闭读取和写入),其意义不言自明。这个函数也是遵照常规,成功执行之后会返回0,如果遇到错误,会返回-1,同时把错误原因设置到errno里...原创 2018-10-26 20:55:01 · 814 阅读 · 0 评论 -
Linux系统调用 - close
Close原创 2018-10-23 23:08:05 · 12328 阅读 · 0 评论 -
Linux系统调用 - write
write()系统调用向指定的文件描述符内写入指定字节数的内容,函数原型:ssize_t write(int fd, const void *buf, size_t count);其中参数count表示最多写入的字节数,返回值表是真正写入的字节数。有些情况下返回值有可能会比指定的字节数要少,例如存储设备上没有空间了,或者写入的文件大小超过RLIMIT_FSIZE的限制了,或者写入过程被信号...原创 2018-10-11 19:29:05 · 2176 阅读 · 0 评论 -
Linux系统调用 - read
read()系统调用的原型:ssize_t read(int fd, void *buf, size_t count);功能:从指定的文件描述符中读取最多count个字节的数据到指定的buf中去。如果传入的count是0,这个系统调用什么都不干,直接返回0。如果指定的count大于0,而且返回值也大于0,则表示函数执行成功,返回值表示成功读取的字节数,同时被读取的文件的当前数据指针会相应后移。...原创 2018-10-09 22:57:15 · 1105 阅读 · 0 评论 -
Linux系统调用 - open
open() 系统调用很有可能是Linux开发者用到的第一个系统调用,它打开一个指定目录上的文件或设备,必要的时候会创建一个。函数原型:int open(const char *pathname, int flags, ...);其中的可选参数是在创建文件的时候指定新文件的模式。flags参数应该至少包含一个访问模式:O_RDONLY,O_WRONLY或者O_RDWR,分别表示文件是只读的...原创 2018-10-09 11:36:15 · 771 阅读 · 0 评论 -
Linux系统调用列表(CentOS 7 64bits)
本系列计划把Linux的所有系统调用都扒一遍,详细解释每个系统调用的功能,用法,使用示例,应用场景和注意事项。系统中支持的系统调用列表及编号都定义在 /usr/include/asm/unistd.h文件下。以下的列表来源于64位的CentOS 7系统,详解链接后面会陆续补充。系统调用号 函数名 功能简介 起始内核版本 详解链接 0 read ...原创 2018-09-26 13:37:32 · 3480 阅读 · 0 评论 -
Linux链接脚本详解
转载自:https://www.cnblogs.com/li-hao/p/4107964.html一、 概论每一个链接过程都由链接脚本(linker script, 一般以lds作为文件的后缀名)控制.链接脚本主要用于规定如何把输入文件内的section放入输出文件内, 并控制输出文件内各部分在程序地址空间内的布局. 但你也可以用连接命令做一些其他事情.连接器有个默认的内置连接...转载 2018-09-07 15:47:14 · 7867 阅读 · 3 评论