<?xml version="1.0" encoding="gbk"?>
<rss version="2.0">
  <channel>
    <title>曲径通幽论坛 - 『Linux System Programming』</title>
    <link>http://www.groad.net/bbs/forum.php?mod=forumdisplay&amp;fid=31</link>
    <description>Latest 20 threads of 『Linux System Programming』</description>
    <copyright>Copyright(C) 曲径通幽论坛</copyright>
    <generator>Discuz! Board by Comsenz Inc.</generator>
    <lastBuildDate>Thu, 09 Apr 2026 19:24:08 +0000</lastBuildDate>
    <ttl>60</ttl>
    <image>
      <url>http://www.groad.net/bbs/static/image/common/logo_88_31.gif</url>
      <title>曲径通幽论坛</title>
      <link>http://www.groad.net/bbs/</link>
    </image>
    <item>
      <title>FD_CLOEXEC 标志的说明</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=7514</link>
      <description><![CDATA[FD_CLOEXEC 标志表示 Close-on-EXEC ，也就是说，在执行exec  系列函数跳转到其它程序时，在该程序里是否还需要先前进程里的描述符，如果不需要，那么设置该标志，反之不用该标志。

测试代码分为 2 个程序。第 1 个程序会 fork 出一个子进程，然后在子进程里执行 exec  ...]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Mon, 19 Nov 2012 15:47:21 +0000</pubDate>
    </item>
    <item>
      <title>将终端里输入的命令保存</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=7491</link>
      <description><![CDATA[在使用 bash 等终端操作时，我们所输入的命令一般被保存在用户家目录的 .bash_history 这个文件中。此外，我们还可以通过上下键翻看历史记录。下面使用 readline 库编程演示这种简单的情况，代码如下：
[mw_shl_code=cpp,true]#include 
#include 
#include 
#include 
 ...]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Thu, 01 Nov 2012 03:26:21 +0000</pubDate>
    </item>
    <item>
      <title>utmpx 结构</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=5805</link>
      <description><![CDATA[utmp 和 wtmp 这两个文件包含了 utmpx 结构记录。utmpx 结构定义在  头文件中。可以通过命令 man 5 utmpx 获得更详细的说明信息：
[mw_shl_code=cpp,true]/* Values for ut_type field, below */

           #define EMPTY         0 /* Record does not contain valid ...]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Sat, 31 Dec 2011 14:57:20 +0000</pubDate>
    </item>
    <item>
      <title>ELF 编程</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=4228</link>
      <description><![CDATA[这里会涉及到 ELF 中的相关变量成员如下：

Elf32_Ehdr
Elf32_Shdr
e_shnum
sh_name
e_shstrndx
.shstrtab
sh_offset

Elf32_Ehdr 是描述 ELF 头部信息的结构体，定义如下：
[mw_shl_code=cpp,true]typedef struct
{
&#160;&#160;unsigned char e_ident[EI_NIDENT];&amp;#16 ...]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Thu, 28 Jul 2011 15:59:58 +0000</pubDate>
    </item>
    <item>
      <title>real user ID, effective user ID,saved set-user-ID 与 setuid()，seteuid()</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=3743</link>
      <description><![CDATA[在使用 setuid() 函数时会遇到 3 个关于 ID 的概念：
real user ID -- 真实用户 ID
effective user ID -- 有效用户 ID
saved set-user-ID -- 保存了的设置用户 ID。

真实用户 ID (real user ID) 就是通常所说的 UID，在 /etc/passwd 中能看到它的身影，如：

它用来标 ...]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Fri, 10 Jun 2011 03:53:48 +0000</pubDate>
    </item>
    <item>
      <title>行缓冲与全缓冲</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=3582</link>
      <description><![CDATA[一般标准I/O 库函数带有缓冲机制，如 printf() 函数。
 
当标准输出连接到终端设备时，它是行缓冲的。也就是说，输出是一行一行的来，每一行由换行符进行冲洗缓冲，相当于输出一行后缓冲区就再没内容。
 
当标准输出重定向到一个文件时，它是全缓冲的，也就是说缓冲区中 ...]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Fri, 27 May 2011 07:06:07 +0000</pubDate>
    </item>
    <item>
      <title>longjmp 前后的自动变量，寄存器变量和易失变量</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=3563</link>
      <description><![CDATA[下面代码来自 APUE2 (运行环境 linux 2.6.x)：
[mw_shl_code=cpp,true]#include 
#include 
#include 

static void f1(int, int, int, int);
static void f2(void);

static jmp_buf  jmpbuffer;
static int      globval;

int main(void)
{
        int              ...]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Tue, 24 May 2011 09:53:42 +0000</pubDate>
    </item>
    <item>
      <title>进程关系之进程组、会话和控制终端</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=3192</link>
      <description><![CDATA[1. 进程组

每个进程除了有一个进程ID之外，还有一个进程组。进程组是一个或多个进程的集合。它们与同一作业相关联，可以接受来自同一终端的各种信号。每个进程组都有唯一的进程组ID。函数getpgrp可以得到进程的进程组ID。

pid_t getpgrp(void);

每个进程组都可以有一 ...]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Sat, 05 Mar 2011 13:02:40 +0000</pubDate>
    </item>
    <item>
      <title>段错误与堆栈溢出</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=2876</link>
      <description><![CDATA[段错误的产生一般是： 

1. 用户程序访问一个虚拟地址，MMU 对这个地址进行检查，确定无权访问。 

2. MMU 产生异常，CPU 从用户模式切换到特权模式，然后跳转到内核代码中执行异常服务程序。 

3. 内核将这个异常解释为段错误，并把引发异常的进程终止掉。 

下面的程 ...]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Tue, 16 Nov 2010 04:50:12 +0000</pubDate>
    </item>
    <item>
      <title>GDB 调试多线程</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=2812</link>
      <description><![CDATA[相关命令： 
info threads : 给出关于当前所有线程的信息。 
thread num :  其中 num 为线程号，如 thread 2 为查看第 2 号线程的信息。 
break 88 thread 3: 当第 3 号线程达到代码的第 88 行时停止执行。 
break 88 thread 3 if x==y : 当第 3 号线程达到代码的第 88  ...]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Wed, 20 Oct 2010 16:42:04 +0000</pubDate>
    </item>
    <item>
      <title>CPU 亲和性</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=2760</link>
      <description><![CDATA[CPU_ZERO

什么是 CPU 的亲和性？
CPU 亲和性（affinity） 就是进程要在某个给定的 CPU 上尽量长时间地运行而不被迁移到其他处理器的倾向性。

CPU 的亲和性常用在多 CPU 或 多核的编程中。

在多核编程里，有一个基本数据类型：
cpu_set_t
它表示一个 CPU 集的掩码。定 ...]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Sun, 12 Sep 2010 13:54:28 +0000</pubDate>
    </item>
    <item>
      <title>零拷贝与 sendfile</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=2276</link>
      <description><![CDATA[本文整理来自 http://www.linuxjournal.com/article/6345?page=0,0

一、什么是“零拷贝”
先看普通网络服务守护进程的一般服务方法：

表面上看来，系统的负荷似乎只是两个系统调用，而没什么开销。如果这么认为，那么这就大错特错了。在这两个函数的背后，数据至少已 ...]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Tue, 29 Jun 2010 17:32:04 +0000</pubDate>
    </item>
    <item>
      <title>线程互斥锁通信机制</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=2145</link>
      <description><![CDATA[互斥以排他方式防止共享数据被并发修改。互斥锁是一个二元变量，其状态为开锁(允许0)和上锁(禁止1)，将某个共享资源与某个互斥锁绑定后，对该共享资源的访问操作如下：
在访问该资源前，首先申请该互斥锁，如果该互斥处于开锁状态，则申请到该锁对象，并立即占有该锁(使 ...]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Wed, 02 Jun 2010 13:24:47 +0000</pubDate>
    </item>
    <item>
      <title>如果线程函数里不用pthread_join()等待子线程结束?</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=2011</link>
      <description><![CDATA[如果线程函数里不用pthread_join()等待子线程结束那会怎么样呢?

看以下代码：
 
尝试3次运行此程序：






上面是 3 次的执行结果，前面 2 次一样，后面依次连 10 都不输出来了。这说明，如果不用 pthread_join() 函数等待子线程，那么主线程不等子线程执行完就很“粗 ...]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Tue, 25 May 2010 00:05:15 +0000</pubDate>
    </item>
    <item>
      <title>进程与线程应用对比</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1986</link>
      <description><![CDATA[]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Sat, 22 May 2010 15:13:51 +0000</pubDate>
    </item>
    <item>
      <title>基于Linux守护进程的分析与实现</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1953</link>
      <description><![CDATA[(转载文章)

摘要：针对Linux环境下的守护进程daemon，分析了一般性守护进程的编写方法，并提出若干见解，通过总结归纳进而为设计和开发守护进程提供了有意的参考，给出了基于Linux守护进程实现的主要思想。

关键词： 守护进程；信号量；控制终端

　　
　　1 引言
　 ...]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Sat, 15 May 2010 16:34:40 +0000</pubDate>
    </item>
    <item>
      <title>STREAM I/O 子系统</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1253</link>
      <description><![CDATA[STREAM I/O 子系统 (不要和标准 I/O 库使用的文件流混淆)提供了一个框架，用于将设备驱动程序连接到内核中。

基本的 STREAM 单位是流。流(stream)，是进程和 STREAMS 设备驱动程序之间的全双工数据路径。当进程打开 STREAMS 时创建的流包含 3 个部分：流头、零个或多个 ...]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Wed, 14 Oct 2009 09:13:32 +0000</pubDate>
    </item>
    <item>
      <title>消息队列的创建与读写</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1124</link>
      <description><![CDATA[关于消息队列的基本概念，相关数据结构：http://www.groad.net/bbs/read.php?tid-1123.html

1、创建消息队列
消息队列随着内核的存在而存在，每个消息队列在系统范围内对应唯一的键值。要获得一个消息队列的描述符，只需要提供消息队列键值即可，该键值由函数 ftok()  ...]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Thu, 03 Sep 2009 03:06:02 +0000</pubDate>
    </item>
    <item>
      <title>使用异步 I/O 大大提高应用程序的性能</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1071</link>
      <description><![CDATA[作者信息：M. Tim Jones 

Linux&#174; 中最常用的输入/输出（I/O）模型是同步I/O。在这个模型中，当请求发出之后，应用程序就会阻塞，直到请求满足为止。这是很好的一种解决方案，因为调用应用程序在等待 I/O请求完成时不需要使用任何中央处理单元（CPU）。但是在某些 ...]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Mon, 24 Aug 2009 19:26:41 +0000</pubDate>
    </item>
    <item>
      <title>关于 select() 函数中的 fd_set 类型说明</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=1063</link>
      <description><![CDATA[在 include/linux/type.h 中看到：
 

在 include/linux/posix_types.h 中看到：
 

同样在 include/linux/posix_types.h 中看到：
 

而在 include/sys/selsect.h 中可以看到：
 

在 include/linux/posix_types.h 中或在 include/bits/typesize.h 中看到：
 

在 incl ...]]></description>
      <category>『Linux System Programming』</category>
      <author>beyes</author>
      <pubDate>Sun, 23 Aug 2009 03:13:06 +0000</pubDate>
    </item>
  </channel>
</rss>