![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
unix/linux系统编程
NeilHappy
这个作者很懒,什么都没留下…
展开
-
linux下dup2的实现
这是apue的一个习题,要求不用fcntl来实现dup2.这是我的思路:循环调用dup复制file descriptor,直到与指定的相同。如果您有更高效的方法,请告诉小弟我,非常感谢! 代码如下:#include #include #include #include #define MAX 1000//function:neil_dup2int nei原创 2012-12-02 11:22:46 · 2101 阅读 · 0 评论 -
unix系统编程小结(一)------文件I/O
基本看完了《unix/linux编程实践教程》,实现了几个小项目,觉得很不过瘾,书中对很多system call的细节和原理都没讲。在尝试看linux内核分析的书时发现很多困难,所以拿起apue,继续打基础。读着读着,对apue上瘾了。这是题外话,就说这么多。一.我对文件I/O的理解 文件I/O最基本的两个函数就是read和write,书中也叫做unbuffered I原创 2012-12-04 20:54:22 · 1838 阅读 · 0 评论 -
unix系统编程小结(二)------文件和目录
一.对linux的安全机制的一点感悟 各种权限,read,write,execute,set-user-ID,set-group-ID,sticky bit,对目录的权限,对文件的权限,用于保证系统安全的各种组合技,各种经典。比如,如果我们想unlink一个文件,就必须拥有该文件所在目录的write与execute的权限。二.两个小例子 1.原创 2012-12-09 09:08:36 · 1732 阅读 · 0 评论 -
UNIX系统编程小结(三)----进程相关
进程即一个程序的动态执行。引用apue上的一句话:"A thorough understanding of the UNIX System's process control is essential for advanced programming".一.总述 1.进程的开始 在C语言中,进程是由一个main函数开始。原创 2012-12-19 11:06:08 · 1985 阅读 · 4 评论 -
僵尸进程
僵尸进程就是父进程fork之后并没有wait子进程。在子进程退出的时候,内核释放该进程所有的资源,比如文件描述符,内存,等等,但是依然为该进程保留一定的信息,只有该进程的父进程wait之后才会释放掉这些保留的信息。如果父进程没有wait,那么子进程就变成了僵尸进程。在高并发的服务器中,僵尸进程会有很大的危害。如果僵尸进程过多,那么就会有大量的进程号被僵尸进程占用,但是系统所能使用的进程是有限的。如原创 2013-03-12 18:59:12 · 1331 阅读 · 0 评论