随笔分类 -  Linux编程开发

摘要:参照:http://blog.csdn.net/xiaohuangcat/article/details/18267561 在多线程的环境下,进程内的所有线程共享进程的数据空间。因此全局变量为所有线程共享。在程序设计中有时需要保存线程自己的全局变量,这种特殊的变量仅在线程内部有效。 如常见的errn 阅读全文
posted @ 2021-08-26 20:30 鸭子船长 阅读(370) 评论(0) 推荐(0) 编辑
摘要:一、什么是僵死进程? 一般情况下,程序调用exit(包括_exit和_Exit,它们的区别这里不做解释),它的绝大多数内存和相关的资源已经被内核释放掉,但是在进程表中这个进程项(entry)还保留着(进程ID,退出状态,占用的资源等等)。 你可能会问,为什么这么麻烦,直接释放完资源不就行了吗? 这是 阅读全文
posted @ 2021-08-02 14:29 鸭子船长 阅读(203) 评论(0) 推荐(0) 编辑
摘要:1.vfork保证子进程先运行,在它调用exec或exit之后父进程才可能被调度运行。如果在调用这两个函数之前子进程依赖于父进程的进一步动作,则会导致死锁。 2.fork要拷贝父进程的进程环境;而vfork则不需要完全拷贝父进程的进程环境,在子进程没有调用exec和exit之前,子进程与父进程共享进 阅读全文
posted @ 2021-08-02 14:26 鸭子船长 阅读(171) 评论(0) 推荐(0) 编辑
摘要:格式: _asm_("asm statements":outputs:inputs:registers-modified) 其中,"asm statements"是汇编语句表达式,outputs,inputs,register-modified都是可选参数,以冒号隔开,且一次以0~9编号,如outp 阅读全文
posted @ 2021-07-15 11:19 鸭子船长 阅读(1004) 评论(0) 推荐(0) 编辑
摘要:基础 操作系统通过一个叫做“系统调用”的标准机制来对上层提供服务,他们提供了一系列标准的API来让上层应用程序获取底层的硬件和服务,比如文件系统。当一个进程想要进行一个系统调用的时候,它会把该系统调用所需要用到的参数放到寄存器里,然后执行软中断指令0x80. 这个软中断就像是一个门,通过它就能进入内 阅读全文
posted @ 2021-05-11 19:32 鸭子船长 阅读(1530) 评论(0) 推荐(0) 编辑
摘要:1、dlopen 动态库失败原因,我碰到主要是以下几点(碰到新问题之后再完善,先打个点)①动态库位置没有放对地方,dlopen 时候找不到你想操作的动态库解决办法:放到指定目录。②头文件没有包全,有不能识别的函数或者标识符解决办法:加一条打印信息,程序运行到这里,会输出不能识别标识符。 if((ha 阅读全文
posted @ 2021-02-03 20:17 鸭子船长 阅读(2345) 评论(0) 推荐(0) 编辑
摘要:阅读目录 mmap基础概念 mmap内存映射原理 mmap和常规文件操作的区别 mmap优点总结 mmap相关函数 mmap使用细节 阅读目录 mmap基础概念 mmap内存映射原理 mmap和常规文件操作的区别 mmap优点总结 mmap相关函数 mmap使用细节 回到顶部 mmap基础概念 mm 阅读全文
posted @ 2019-11-13 16:15 鸭子船长 阅读(266) 评论(0) 推荐(0) 编辑
摘要:阿里四面被问到了这个问题,一脸懵逼,下来也没找到什么阐述这个的文章,就自己查man来对比总结一下吧: sched_yield()的man手册描述如下: DESCRIPTION sched_yield() causes the calling thread to relinquish the CPU. 阅读全文
posted @ 2019-11-08 17:05 鸭子船长 阅读(1075) 评论(0) 推荐(0) 编辑
摘要:signal(SIGPIPE, SIG_IGN) 当服务器close一个连接时,若client端接着发数据。根据TCP 协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。 根据信号的默认处理规则SI 阅读全文
posted @ 2019-08-29 16:52 鸭子船长 阅读(617) 评论(0) 推荐(0) 编辑
摘要:opendir函数 头文件:#include <sys/types.h> #include <dirent.h> 函数:DIR *opendir(const char *name); 含义: opendir()用来打开参数name 指定的目录, 并返回DIR*形态的目录流, 和open()类似, 接 阅读全文
posted @ 2018-04-10 16:29 鸭子船长 阅读(2793) 评论(1) 推荐(0) 编辑
摘要:1 引言 众所周知,操作系统使用伙伴系统管理内存,不仅会造成大量的内存碎片,同时处理效率也较低下。SLAB是一种内存管理机制,其拥有较高的处理效率,同时也有效的避免内存碎片的产生,其核心思想是预分配。其按照SIZE对内存进行分类管理的,当申请一块大小为SIZE的内存时,分配器就从SIZE集合中分配一 阅读全文
posted @ 2018-01-23 15:09 鸭子船长 阅读(494) 评论(0) 推荐(0) 编辑
摘要:转载:http://hi.baidu.com/freelonely/blog/item/340341077c4d287302088189.html 预对齐内存的分配 在大多数情况下,编译器和C库透明地帮你处理对齐问题。POSIX 标明了通过malloc( ), calloc( ), 和 reallo 阅读全文
posted @ 2018-01-22 15:49 鸭子船长 阅读(1597) 评论(0) 推荐(0) 编辑
摘要:1、用户编制程序时使用的地址称为虚地址或逻辑地址,其对应的存储空间称为虚存空间或逻辑地址空间;而计算机物理内存的访问地址则称为实地址或物理地址,其对应的存储空间称为物理存储空间或主存空间。 2、虚拟存储器的容量限制:主存容量+辅存(硬盘)容量。 3、物理内存:在应用中,真实存在的,插在主板内存槽上的 阅读全文
posted @ 2018-01-04 14:54 鸭子船长 阅读(2506) 评论(0) 推荐(0) 编辑
摘要:server: client: 阅读全文
posted @ 2017-12-05 19:52 鸭子船长 阅读(418) 评论(0) 推荐(0) 编辑
摘要:1、利用了前置声明来在c语言的基础上进行封装操作。即在include目录下防止event.h等头文件,在这些头文件中只暴露struct的声明却不暴露其定义,对于如event_base等结构的操作均使用封装的函数进行,而这些封装的函数则定义在event.c中,event.c会包含event.h和eve 阅读全文
posted @ 2017-12-05 15:18 鸭子船长 阅读(254) 评论(0) 推荐(0) 编辑
摘要:2.生成动态库并使用 linux下编译时通过 -shared 参数可以生成动态库(.so)文件,如下 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。 一、静态库和动态库的区别1. 静态函数库这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较 阅读全文
posted @ 2017-10-16 16:51 鸭子船长 阅读(489) 评论(0) 推荐(0) 编辑
摘要:转自:http://ju.outofmemory.cn/entry/2051 简单的说,编译器就是一个可执行程序,它专门用于将程序员易于编写的高级语言 (如 C 语言) 翻译为机器可以识别的低级语言。编译器将源代码编译为可执行程序的大致工作流程为如下:源代码 (source code) → 预处理 阅读全文
posted @ 2017-10-16 15:34 鸭子船长 阅读(1443) 评论(0) 推荐(1) 编辑
摘要:一,GNU GNU是“GNU 's Not Unix”的递归缩写, Stallman宣布GNU应当发音为Guh-NOO(革奴)以避免与new这个单词混淆(注:Gnu在英文中原意为非洲牛羚,发音与new相同) 为保证GNU软件可以自由地“使用、复制、修改和发布”,所有GNU软件都在一份在禁止其他人添加 阅读全文
posted @ 2017-10-16 15:07 鸭子船长 阅读(596) 评论(0) 推荐(0) 编辑
摘要:Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。 在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组,如: 实例中,bin文件的第 阅读全文
posted @ 2017-09-27 15:34 鸭子船长 阅读(158) 评论(0) 推荐(0) 编辑
摘要:登录系统后,在当前命令窗口下输入命令: 你会看到如下图所示: 树状目录结构: 以下是对这些目录的解释: /bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。 /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 /dev :dev是Devic 阅读全文
posted @ 2017-09-26 15:54 鸭子船长 阅读(119) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示