
linux 环境编程
文章平均质量分 82
ColZer
专注基础架构和云平台
展开
-
linux库:静态库和动态库
linux环境下,库文件包含静态函数库和动态函数库两种:静态函数库: 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进可执行文件了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译,而且体积也较转载 2012-10-09 15:17:23 · 1054 阅读 · 0 评论 -
通过看linux环境相关源码学习编程(持续更新)
第一条:结合枚举enum声明和宏定义来定义变量:这样可以不用去定义一个enum变量(Form Memcahced)enum { DT_UNKNOWN = 0,# define DT_UNKNOWN DT_UNKNOWN DT_FIFO = 1,# define DT_FIFO DT_FIFO DT_CHR = 2,# define DT_CHR DT_C原创 2012-10-09 21:37:04 · 1156 阅读 · 0 评论 -
linux基础编程:进程通信之信号
信号本质信号是在软件层次上对硬件的中断机制的一种模拟,在原理上,一个进程接受到一个信号和处理器接受到中断请求可以说是一样。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了。信号机制经过POSIX实时扩展后,功能更加强大,除了基本通知功能外,还原创 2012-11-03 16:45:28 · 1772 阅读 · 0 评论 -
linux基础编程:进程通信之管道
在文章《linux基础编程:进程通信之信号》中,我们看到信号作为进程之间的通信方式。但是传送的信息之限于一个信号值。而本文将会介绍Linux支持的最初Unix IPC之一:管道和命名管道,它允许进程之间交换更多的数据,管道指的是从一个进程连接数据流到另一个进程。它具有以下特点:管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;只能用于父子进程或者兄弟进程之间(原创 2012-11-03 20:40:18 · 1389 阅读 · 0 评论 -
linux基础编程:多线程基础总结:线程创建 终止 线程同步/互斥量/条件变量/信号灯
看了很多关于linux下面多线程开发的博客和书籍,最后还是觉得杨沙洲在IBM developerWorks 中国发表的关于Posix线程编程的专栏差不多是最好的吧,本文就以该专栏来一步一步来学习多线程开发。第一篇线程的创建与取消相对进程而言,线程是一个更加接近于执行体的概念,与其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。线程和进程在使用上各有优缺点:线程执行开原创 2012-11-20 10:48:55 · 2028 阅读 · 0 评论 -
linux基础编程:IO模型:阻塞/非阻塞/IO复用 同步/异步 Select/Epoll/AIO
IO概念Linux的内核将所有外部设备都可以看做一个文件来操作。那么我们对与外部设备的操作都可以看做对文件进行操作。我们对一个文件的读写,都通过调用内核提供的系统调用;内核给我们返回一个file descriptor(fd,文件描述符)。而对一个socket的读写也会有相应的描述符,称为socketfd(socket描述符)。描述符就是一个数字,指向内核中一个结构体(文件路径,数据区,原创 2012-11-13 13:28:30 · 11427 阅读 · 1 评论 -
linux基础编程:进程通信之System V IPC:消息队列,信号量,共享内存
Linux下的进程通信基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩 充,形成了“system V IPC”,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)的进程间通原创 2012-11-05 17:19:59 · 6069 阅读 · 1 评论 -
linux 基础编程:文件操作总结
最近在看底层系统相关开源代码的时候,发现自己linux下面的基础编程真的没有过关,重新捧起《linux程序设计,第三版》好好学习一下基础编程,文件编程当然是第一站咯,今天看完,好好总结一下吧。小条例一切皆文件:在linux操作系统中,文件为操作系统服务和设备提供了一个简单而统一的接口,即一切皆文件。应用程序可以像使用文件一样使用磁盘文件,串行口,打印机和其他设备。目录也是一种特殊文件。原创 2012-10-24 16:34:15 · 1391 阅读 · 0 评论 -
linux基础编程:进程基础总结
简介 程序是一组可执行的静态指令集,而进程(process)是一个执行中的程序实例。利用分时技术,在Linux操作系统上同时可以运行多个进程。分时技术的基本原理是把CPU的运行时间划分成一个个规定长度的时间片,让每个进程在一个时间片内运行。当进程的时间片用完时系统就利用调度程序切换到另一个进程去运行。因此实际上对于具体单个CPU的机器来说某一个时刻只能运行一个进程。但由于每个进程原创 2012-10-30 17:06:21 · 1049 阅读 · 0 评论 -
linux 常用头文件
//头文件位于目录:/usr/include/i386-linux-gnu/sys下面1、 一些头文件的作用::ANSI C。提供断言,assert(表达式):GCC。GTK,GNOME的基础库,提供很多有用的函数,如有数据结构操作函数。使用glib只需要包含:GCC。文件夹操作函数。struct dirent,struct DIR,opendir(),closedir(转载 2012-10-09 21:07:13 · 1234 阅读 · 0 评论 -
linux基础编程:进程通信之套接字
在文章《linux基础编程:进程通信之System V IPC:消息队列,信号量,共享内存》开头部分,我们介绍了linux环境下的进程通信方式IPC分类。本节我们将介绍由贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)提出的IPC工具:套接字接口。套接字机制是管道概念的一个扩展。凭借这种机制,客户或者服务器系统的开发工作既可以在本地单机运行,也可以跨网络进行分布式进程间进行。但是套原创 2012-11-15 15:35:57 · 1940 阅读 · 0 评论