<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>APUE on Tony Bai</title><link>https://tonybai.com/tags/apue/</link><description>Recent content in APUE on Tony Bai</description><generator>Hugo</generator><language>zh-cn</language><copyright>2004-2026 Tony Bai. 版权所有.</copyright><lastBuildDate>Mon, 01 Sep 2025 00:00:00 +0800</lastBuildDate><atom:link href="https://tonybai.com/tags/apue/index.xml" rel="self" type="application/rss+xml"/><item><title>成为更完整的 Go 工程师，从补上这堂系统编程课开始</title><link>https://tonybai.com/2025/09/01/system-programming-in-go/</link><pubDate>Mon, 01 Sep 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/09/01/system-programming-in-go/</guid><description>本文永久链接 – https://tonybai.com/2025/09/01/system-programming-in-go 大家好，我是Tony Bai。 作为一名 Go 工程师，我们无疑是幸运的。这门语言为我们提供了简洁的语法、强大的并发模型和一套设计精良的标准库。我们能以极高的效率，构建出高性能的 Web 服务、数据管道和云原生应用。 我们熟练地使用 http.ListenAndServ...</description></item><item><title>如何像gitlab-runner那样将Go应用安装为系统服务</title><link>https://tonybai.com/2022/09/12/how-to-install-a-go-app-as-a-system-service-like-gitlab-runner/</link><pubDate>Mon, 12 Sep 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/09/12/how-to-install-a-go-app-as-a-system-service-like-gitlab-runner/</guid><description>本文永久链接 – https://tonybai.com/2022/09/12/how-to-install-a-go-app-as-a-system-service-like-gitlab-runner 在《让reviewdog支持gitlab-push-commit，守住代码质量下限》一文中，gitlab-runner(一个Go语言开发的应用)通过自身提供的install命令将自己安装为了一个...</description></item><item><title>为阻塞型函数调用添加超时机制</title><link>https://tonybai.com/2013/10/25/add-timeout-to-blocking-function-call/</link><pubDate>Fri, 25 Oct 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/10/25/add-timeout-to-blocking-function-call/</guid><description>我们产品中的一个子模块在进行Oracle实时数据库查询时，常常因数据库性能波动或异常而被阻塞在OCI API的调用上，为此我们付出了“惨痛”的代价。说来说去还是我们的程序设计的不够完善，在此类阻塞型函数调用方面缺少微小粒度的超时机制。 调用阻塞多发生在I/O操作（磁盘、网络、低速设备）、第三方API调用等方面。对于文件/网络I/O操作，我们可利用在非阻塞文件描述符上select /poll的超时机...</description></item><item><title>解疑sigsuspend</title><link>https://tonybai.com/2005/09/22/understand-sigsuspend/</link><pubDate>Thu, 22 Sep 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/09/22/understand-sigsuspend/</guid><description>Unix提供了等待信号的系统调用，sigsuspend就是其中一个，在CU(www.chinaunix.net)上曾经讨论过一个关于该系统调用的问题，这里也做一下解疑。 CU网友讨论的问题的核心就是到底sigsuspend先返回还是signal handler先返回。这个问题Stevens在《Unix环境高级编程》一书中是如是回答的“If a signal is caught and if the...</description></item><item><title>理解Zombie和Daemon Process</title><link>https://tonybai.com/2005/09/21/understand-zombie-and-daemon-process/</link><pubDate>Wed, 21 Sep 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/09/21/understand-zombie-and-daemon-process/</guid><description>潜水于CU(www.chinaunix.net)，看到了大家对Zombie Process和Daemon Process的理解，同样也意识到以前自己对这两个概念理解的偏颇，想在这篇Blog中将之纠正。 一、Zombie Process Zombie Process，译成中文为僵尸进程，以前我一直认为父进程先结束，子进程就变成了僵尸进程，事实上这与正确的理解恰恰相反，真惭愧，只是从字面理解了而并未深...</description></item><item><title>理解dup和dup2</title><link>https://tonybai.com/2005/09/19/understand-dup-and-dup2/</link><pubDate>Mon, 19 Sep 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/09/19/understand-dup-and-dup2/</guid><description>看到ChinaUnix(CU)上的一个帖子后，觉得自己对dup和dup2特别是后者的理解还是有欠缺的，这两个接口看起来很简单，但是理解起来也真的并不是那么容易。 相信大部分在Unix/Linux下编程的程序员手头上都有《Unix环境高级编程》(APUE)这本超级经典巨著。作者在该书中讲解dup/dup2之前曾经讲过“文件共享”，这对理解dup/dup2还是很有帮助的。这里做简单摘录以备在后面的分析...</description></item></channel></rss>