今天看到一篇文章,对于epoll讲解的非常生动清晰,转载收藏一下,原文请点击here。生活中的一个例子假设你在大学中读书,要等待一个朋友来访,而这个朋友只知道你在A号楼,但是不知道你具体住在哪里,于是你们约好了在A号楼门口见面。如果你使用的阻塞IO模型来处理这个问题,那么你就只能一直守候在A号楼门口等待朋友的到来,在这段时间里你不能做别的事情,不难知道,这种方式的效率是低下的。进一步解释se...
exit、_EXIT和_exit三个函数都是终止一个进程,但是三者却有一些差异。网上对于它们的介绍也是特别的多,这里我就不重复造轮子了,只是从我的角度和观点去归纳性的描述一些这三者的异同。exit和_EXIT都是标准C提供的库函数,定义在<stdlib.h>中;而_exit并不是标准C的库函数,它是Posix扩展定义的。在类UNIX系统中,一般_exit是系统调用,而exit和_...
对于一些高级语言而言,使用某个字符分割字符串是很基础的功能。而对于编程语言中的瑞士军刀C,该功能自然也是有的,我们使用标准C提供的strtok函数即可实现这个功能。这个函数在使用上面看上去有些怪,我们从一个例子开始吧。一,strtok基本使用#include <stdio.h>
#include <string.h>
int main()
{
char *t...
一,什么是Lex?引用度娘上面的介绍:Lex是LEXical compiler的缩写,是Unix环境下非常著名的工具,主要功能是生成一个词法分析器(scanner)的C源码,描述规则采用正则表达式(regular expression)。OK,我们先来介绍Lex中的正则表达式。二,Lex中的正则表达式
字符
含义
.
匹配任意字符,除了 n。一般作为最后一条翻译规则。
-
用...
我们知道多进程的程序会比多线程的程序在稳定性上面好一些,因为资源是隔离的。但这也是的多进程程序在相互通信方面比多线程复杂一些,但Linux系统还是提供了很多进程通信的方式,统称为IPC(InterProcess Communication).常见的IPC有管道、FIFO、消息队列、信号量、共享内存以及套接字等。一,管道(PIPE)管道(有时也称为无名管道,和后面要介绍的FIFO相对)是UNI...
我们已经知道,fork出来的子进程和父进程谁先运行是随机的,那我们如果控制呢?可以使用wait类函数。#include <sys/wait.h>
pid_t wait(int *stat_loc);
pid_t waitpid(pid_t pid, int *stat_loc, int options);
若成功则返回进程pid,0,若出错返回-1进程调用上面的两个函数可能会...
exec族函数是Linux进程控制原语中非常重要的一部分,往往和fork/vfork配合使用。当一个进程调用一种exec函数时,该进程执行的程序完全替换未新程序,而新程序则从其main函数开始执行(原程序后续部分不会再执行了)。但是调用exec并不创建新进程(不同于fork和vfork),所以调用exec前后进程ID并未改变。exec只是用一个全新的程序替换了当前进程的正文、数据、堆和栈。下...
一,fork和vfork#include <sys/types.h>
#include <unistd.h>
pid_t fork(void);
pid_t vfork(void);fork用于创建一个进程,该函数调用一次,返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值是新子进程的进程号。出错时,返回-1。子进程是父进程的一个副本——子进程获得父进程...
- 1
- 2
- 3
- 4
- ...
- 6
- 后一页 »