linux
文章平均质量分 69
holyshit666
这个作者很懒,什么都没留下…
展开
-
vfork函数创建出的父子进程
vfork函数创建新进程的主要目的在于用exec函数执行另外的程序。在没调用exec或exit之前子进程的运行中是与父进程共享数据段的,在vfork调用中,子进程先运行,父进程挂起,直到子进程调用exec或exit,在这之后,父子进程的执行顺序不在有限制。例: 1 #include 2 #include 3 #include 4 #include 5 6原创 2016-08-27 19:08:53 · 2653 阅读 · 0 评论 -
使用select编写服务器
io多路复用是通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般都是读就绪或者写就绪),就能通知应用程序进行相应的读写操作。select函数作为io多路复用的机制,第一个参数nfds是fd_set集合中最大描述符值+1,fdset是一个位数组,每一位代表其对应的描述符是否需要被检查。第二三四参数表示需要关注读、写、错误时间的文件描述符位数组,这些参数既是输入型参数也是输出型参数,可能会被内原创 2016-09-24 23:41:16 · 1116 阅读 · 0 评论 -
linux中可重入函数和线程安全
一个可重入函数简单来说是可以被中断的函数,也就是说,可以在这个函数运行的任何时候中断它,转入os调度下去执行另一段代码,而返回控制时不会出现什么错误。可以被信号控制器安全调用的函数称为“异步信号安全函数”。可重入函数与异步信号安全函数时一个概念。线程安全:一个函数被称为线程安全的,当且仅当被多个并发线程反复调用时,他会产生一个正确的结果。可重入性:有一类重要的线程安全函数,叫做转载 2016-09-07 22:55:16 · 355 阅读 · 0 评论 -
linux进程间通信(命名管道)
在处理进程间通信的问题时,匿名管道只能在有亲缘关系的进程中进行通信。如何做到在任意两个进程之间通信,这就要用到命名管道。命名管道也被称为fifo文件,它是一种特殊类型的文件,在文件系统中以文件的形式存在,它的行为和匿名管道类似。可以使用mkfifo函数来创建一个命名管道。int mkfifo(const char* filename,mode_t mode);filename指定了文件原创 2016-09-02 21:22:34 · 280 阅读 · 0 评论 -
linux中使用匿名管道实现进程间通信
管道是最基本的IPC机制,由pipe函数创建。在调用pipe函数时,会在内存中创建一个缓冲区,称为管道。这个管道有两个端,一个读端和一个写端。通过filedes参数传给用户程序的两个文件描述符,filedes[0]指向管道的读端,filedes[1]指向管道的写端。在linux中一切皆文件,管道可以看成是一个文件,可以通过read和write函数对管道进行读写操作。进程间通信时如何通过匿名管道原创 2016-09-02 19:18:25 · 1305 阅读 · 0 评论 -
linux中的umask
当我们登陆一个系统后创建一个文件和目录都是有默认权限的,umask设置了创建文件和目录的默认权限,它与chomd效果相反,umask设置权限的补码,chmod设置文件的权限码。一般可在/etc/profile、/etc/bashrc、$ [HOME]/.bash_profile、$[HOME]/.profile或$[HOME]/.bashrc中设置umask值。umask中文名:掩码;原创 2016-08-31 14:21:11 · 460 阅读 · 0 评论 -
linux中的死锁
死锁:是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于“死锁”状态或系统产生了死锁,这些永远在互相等待的进程(线程)称为死锁进程(线程)。由于资源占用时互斥的,当某个进程提出申请资源后,使得有关进程(线程)在无外力协助下,永远分配不到必备的资源而无法运行,这就产生了一种特殊现象死锁。一种交叉等待死锁的情形,此原创 2016-09-10 20:46:23 · 1002 阅读 · 0 评论 -
linux中的crontab命令
在linux中,使用者可以自己设置计划任务,所以系统提供了使用者控制计划任务的命令:crontab。1.在用户建立的crontab文件中,每行代表一个任务,每行的每隔字段代表一项设置,共分为6个字段,前五个设置时间,最后一个设置命令;Min:分钟,0-59Hour:小时,0-23Day:日期,0-31Month:月,1-12Week:周,0-7可以使用以下特殊字原创 2016-09-10 00:16:13 · 235 阅读 · 0 评论 -
struct FILE
struct file struct file结构体定义在include/linux/fs.h中定义。文件结构体代表一个打开的文件,系统中的每个打开的文件在内核空间都有一个关联的 struct file。它由内核在打开文件时创建,并传递给在文件上进行操作的任何函数。在文件的所有实例都关闭后,内核释放这个数据结构。在内核创建和驱动源码中,struct file的指针通常被命名为file或f转载 2016-08-27 22:46:56 · 439 阅读 · 0 评论 -
使用epoll编写服务器
epoll是公认的linux2.6下性能最好的多路I/O就绪通知方法。epoll有epoll_create,epoll_ctl,epoll_wait三个系统调用。1.int epoll_create(int size):创建一个epoll句柄。当创建好句柄后,他会占用一个fd的值,所以当使用完epoll后一定要调用close将其关闭。2.int epoll_ctl(int epfd,i原创 2016-09-26 22:54:17 · 2170 阅读 · 0 评论