linux program
文章平均质量分 61
alibo2008
这个作者很懒,什么都没留下…
展开
-
linux中fork()函数详解
<br />http://blog.csdn.net/jason314/archive/2010/06/01/5640969.aspx<br /> <br /> <br />一、fork入门知识<br /> 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。<br /> 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和转载 2011-01-13 10:47:00 · 662 阅读 · 0 评论 -
浅谈无缓存I/O操作和标准I/O文件操作区别
http://blog.sina.com.cn/s/blog_69708ebe0100raxm.html首先,先稍微了解系统调用的概念:系统调用,英文名system call,每个操作系统都在内核里有一些内建的函数库,这些函数可以用来完成一些系统系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序,如果没有系统调用和内 核函数,用户将不能编转载 2013-10-16 18:36:30 · 424 阅读 · 0 评论 -
文件描述符和文件指针的区别
文件描述符就是open文件时产生的一个整数,直到一个索引作用,它用于UNIX系统中,用于标识文件。文件指针是指向一个FILE的结构体,这个结构体里有一个元素就是文件描述符。它用于ANSI C标准的IO库调用中,用于标识文件。 既然FILE中包含文件描述符元素,可以用fopen()直接获取指针fp,然后使用fp获得fp中所包含文件描述符fd的信息。 文件描述符应该是唯一的,但文件转载 2015-03-27 16:31:31 · 418 阅读 · 0 评论 -
read系统调用,mmap系统调用
一般情况下,操作文件既可以使用标准I/O,也可直接使用系统调用。两者有何区别呢?在输入输出中,直接使用底层的系统调用效率是非常低的,为什么?(1) 系统调用会影响系统性能。执行系统调用时,Linux必须从用户态代码 切换到内核态,然后再返回用户代码。(2) 硬件会对底层系统调用一次所能读写的数据块做出一定的限制。 带缓存的文件操作转载 2015-03-27 19:45:57 · 678 阅读 · 0 评论 -
标准IO缓冲详解全缓冲、行缓冲、不缓冲
标准I/O库提供缓冲的目的是尽可能地减少使用read和write调用的次数。他也对每个I/O流自动地进行缓冲管理,从而避免了应用程序需要考虑这一点所带来的麻烦。不幸的是,标准I/O库最令人迷惑的也是他的缓冲。标准I/O提供了三种类型的缓冲:1、全缓冲。这种情况下,在填满标准I/O缓冲区后才进行实际I/O操作。对于驻留在磁盘上的文件通常是由标准I/O库实施全缓转载 2015-03-27 19:43:20 · 723 阅读 · 0 评论 -
Linux进程同步之记录锁(fcntl)
记录锁相当于线程同步中读写锁的一种扩展类型,可以用来对有亲缘或无亲缘关系的进程进行文件读与写的同步,通过fcntl函数来执行上锁操作。尽管读写锁也可以通过在共享内存区来进行进程的同步,但是fcntl记录上锁往往更容易使用,且效率更高。记录锁的功能:当一个进程正在读或修改文件的某个部分是,它可以阻止其他进程修改同一文件区。对于这个功能阐述我认为有三点要解释的:记录锁不仅仅可以用来同步转载 2015-03-27 19:40:49 · 715 阅读 · 0 评论 -
fork /vfork 的异同
1>fork()用于创建一个新进程。由fork()创建的子进程是父进程的副本。即子进程获取父进程数据空间,堆和 栈的副本。父子进程之间不共享这些存储空间的部分。而vfork()创建的进程并不将父进程的地址空间完全复制到子进程中,因为子进程会立即调用 exec(或exit)于是也就不会存放该地址空间。相反,在子进程调用exec或exit之前,它在父进程的空间进行。2>vfork()与fork()转载 2015-03-26 20:14:02 · 445 阅读 · 0 评论 -
fork循环
题目:请问下面的程序一共输出多少个“-”?1234567891011121314#include #include #include intmain(void){ int转载 2015-03-26 10:26:56 · 1758 阅读 · 0 评论 -
高性能I/O设计模式概述
http://www.yeolar.com/note/2012/12/15/high-performance-io-design-patterns/这篇概述把网上的一些资料汇总到了一起,主要目的是解释清楚I/O模型的概念和Reactor、Proactor模式。目录服务器的几种实现方法一些概念同步和异步阻塞和非阻塞I/O模型Reactor和Proa转载 2015-03-04 17:31:17 · 406 阅读 · 0 评论 -
两种高性能 I/O 设计模式 Reactor 和 Proactor
http://daoluan.net/blog/two-high-performance-io-design-patterns/#commentsContents1 Reactor2 Proactor3 总结Reactor 和 Proactor 是基于事件驱动,在网络编程中经常用到两种设计模式。曾经在一个项目中用到了网络库 libeven转载 2015-03-04 17:30:10 · 425 阅读 · 0 评论 -
IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)
http://blog.csdn.net/historyasamirror/article/details/5778378当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞 》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link 。写完之后发现很多人都很喜欢,我还是非常开心的,也说转载 2015-03-04 17:28:47 · 394 阅读 · 0 评论 -
“惊群”,看看nginx是怎么解决它的
http://blog.csdn.net/russell_tao/article/details/7204260转载 2014-04-18 15:41:48 · 490 阅读 · 0 评论 -
通过 ulimit 改善系统性能
http://www.ibm.com/developerworks/cn/linux/l-cn-ulimit/index.html?ca=drs-cn-1126概述系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作,ulimit 是我们在处理这些问题时,经常使用的一种简单手段。ulimit 是一种 lin转载 2014-03-19 12:30:19 · 402 阅读 · 0 评论 -
sigterm sigint sigkill 区别
<br />http://www.mirecle.com/2010/05/20/sigterm-sigint-sigkill-difference.html<br /><br />我看网上应该有不少搜索这个区别的问题,但是回答的都不全面,其中sigterm与sigint尤其有一点区别比较重要,但大都没有提及,今天我就遇到了这个问题,纠结了20分钟才搞明白咋回事。<br />首先,对于说这几个信号都是终止程序运行的说法不太准确,因为程序收到信号后,如果不对信号处理,就会导致程序退出,但如果程序捕获信号进行处理原创 2011-01-25 14:21:00 · 8052 阅读 · 1 评论 -
errno 104:connetction reset by peer的错误分析
errno = 104错误表明你在对一个对端socket已经关闭的的连接调用write或send方法,在这种情况下,调用write或send方法后,对端socket便会向本端socket发送一个RESET信号,在此之后如果继续执行write或send操作,就会得到errno为104,错误描述为connection reset by peer。 出现这种问题的很大一部分原因,至转载 2015-05-13 16:29:06 · 67979 阅读 · 5 评论