
Linux
文章平均质量分 84
mi_rencontre
这个作者很懒,什么都没留下…
展开
-
find命令详解
Linux下的find命令的查询功能十分强大,下面详细介绍find的大多数用法:工作方式:沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作。1.根据文件时间搜索atime(access time,访问时间):即上次访问这个文件的时间mtime(modification time,修改时间):即文件内容上次发生改变的时间ctime(change time,改变时间)原创 2016-05-19 11:15:29 · 2465 阅读 · 0 评论 -
I/O复用之select
I/O复用使程序能够同时监听多个文件描述符 ,能够提高程序的性能。一、需要使用I/O复用的情况:1. 客户端程序要同时处理多个socket。2. 客户端程序要同时处理用户输入和网络连接。3. TCP服务器要同时处理监听socket和连接socket。4. 服务器要同时处理TCP请求和UDP请求。5. 服务器要同时监听多个端口,或者处理多种任务。Linux下实现I/O复用原创 2016-07-30 23:01:47 · 508 阅读 · 0 评论 -
wait和waitpid函数
当一个进程正常或异常终止时,内核就向其父进程发送一个SIGCHLD信号。因为子进程终止是一个异步事件,所以发生这种信号也是内核向父进程发的异步通知。父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用执行的函数。对于这种信号的系统默认动作是忽略它。调用wait或waitpid的进程可能会发生的情况: 1.如果其所有子进程都还在运行,则阻塞 2.如果一个子进程已终止,正等待父进程获原创 2016-07-09 17:30:12 · 560 阅读 · 0 评论 -
可重入函数与线程安全的区别与联系
1. 可重入函数原创 2016-07-14 19:17:14 · 524 阅读 · 0 评论 -
死锁的产生及避免
1. 死锁死锁可以被定义成一组竞争系统资源或互相通信的进程间相互的“永久”阻塞。当一组进程中的所有进程都在等待一个事件,而只有在进程集合中的其他阻塞的进程才可以触发该事件,这时就称一组进程死锁。2. 产生死锁的四个必要条件 (1) 互斥条件:一个资源每次只能被一个进程使用。 (2) 占有且等待条件:一个 进程因请求资源而阻塞时,对已获得的资源保持不放。 (3) 不剥夺条件(非抢原创 2016-07-14 14:20:29 · 528 阅读 · 0 评论 -
Linux信号
一、信号的基本概念用kill -l 命令可以查看系统定义的信号列表:1~31号为普通信号,34~64号为实时信号二、产生信号的条件1. 用户在终端按下某些键时,终端驱动程序会发送信号给前台进程,例如Ctrl-C产生SIGINT信号,Ctrl-\产生SIGQUIT信号,Ctrl-Z产生SIGTSTP信号。 2. 硬件异常产生信号,这些条件由硬件检测到并通知内核,然后内核向原创 2016-07-13 15:13:25 · 442 阅读 · 0 评论 -
Linux进程概论
一、进程概念 程序的一个执行实例/正在执行的程序/能分配处理器并由处理器执行的实体。 内核观点:担当分配系统资源(CPU时间,内存)的实体。进程的两个基本元素是程序代码(可能被执行相同程序的其他进程共享)和代码相关联的数据集。进程是一种动态描述,但是并不代表所有的进程都在运行。(进程在内存中因策略或调度需求,会处于各种状态)。二、进程控制原创 2016-06-08 14:01:21 · 1337 阅读 · 0 评论 -
进程调度
一、进程调度的基本状态:1.等待态:等待某个事件的完成2.就绪态:等待系统分配处理器以便运行3.运行态:占有处理器正在运行运行态→等待态: 往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。等待态→就绪态 :则是等待的条件已满足,只需分配到处理器后就能运行。运行态→就绪态 :不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态。例如原创 2016-06-08 11:42:11 · 821 阅读 · 0 评论 -
fork与vfork函数
一、fork函数pid_t fork(void); 返回值:子进程中返回0,父进程中返回子进程ID,出错返回-1。一个现有进程可以调用fork创建一个新进程。 子进程是父进程的副本。例如:子进程获得父进程数据空间、堆和栈的副本(主要是数据结构的副本)。父子进程不共享这些存储空间部分。父子进程共享正文段。 由于fork之后经常归属exec,所以现在很多实现并不执行一原创 2016-06-28 21:23:46 · 494 阅读 · 0 评论 -
gcc的使用以及编写简易的Makefile
一、gcc的用法gcc的编译流程:预处理---->编译--->汇编--->链接1. 预处理(进行宏替换,生成.I的预处理文件):预处理功能主要包括宏定义,文件包含,条件编译三部分。分别对应宏定义命令, 文件包含命令,条件编译命令三部分实现。预处理过程读入源代码,检查包含预处理指令的语句和宏定义,并对源代码进⾏行响应的转换。预处理过程还会删除程序中的注释和多余的空白字符。原创 2016-06-01 21:34:04 · 3110 阅读 · 0 评论 -
I/O复用之poll
poll和select相似,也是通过轮询文件描述符,以测试其中是否有就绪者。一、poll系统调用的API:1. poll函数原型如下:2. 参数1)fds参数是一个poolfd结构类型的数组,它指定所有我们感兴趣的文件描述符上发生的可读、可写和异常等事件。pollfd结构体定义如下:其中,fd指定文件描述符;events告诉poll监听fd上的哪些事件,它是原创 2016-08-03 11:26:34 · 527 阅读 · 0 评论