linux编程 APUE-学习记录-20200630 3.11 原子操作 追加到一个文件 考虑一个进程,他要将数据追加到一个文件尾端。早期的UNIX系统版本并不支持open的O_APPEND选项,所以程序被编写程下列形式: {代码…}
linux编程 APUE-学习记录-20200629 每个进程在进程表中都有一个记录项,记录项中包含一张打开文件描述符表,可将其视为一个矢量,每个描述符占用一项。与每个文件描述符相关联的是:a. 文件描述符标志(close_on_exec);b. 指向一个文件表项的指针。
linux编程 APUE-学习记录-20200628 3.7 函数read 调用read函数从打开文件中读数据。 {代码…} 如read成功,则返回读到的字节数。如已到达文件的尾端,则返回0.有多种情况可使实际读到的字节数少于要求读的字节数: 读普通文件时,在读要求字节数之前已到达了文件尾端。 当从终端设备读时,通常一次最多读一行。 当从网络读时,网络中的缓冲机制可能造成但…
linux编程 APUE-学习记录-20200624 creat的一个不足之处是它以只写方式打开所创建的文件。在提供open的新版本之前,如果要创建一个临时文件,并要先写文件,然后又读该文件,则必须先调用creat、close,然后再调用open,现在则可用以下方式调用open实现:
linux编程 APUE-学习记录-20200622 对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数。当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。当读写一个文件时,使用open或creat返回的文件描述符,将其作为参数传送给read和write。
linux编程 APUE-学习记录-20200618 文件描述符通常是一个小的非负整数,内核用以标识一个特定进程正在访问的文件。当内核打开一个现有文件或创建一个新文件时,都返回一个文件描述符。在读写文件时,可以使用文件描述符。
linux编程 APUE-学习记录-20200617 准备工作: APUE第三版源代码下载链接:[链接] 安装了Linux Mint虚拟机,安装vmware-tool 安装libc6-dev libbsd-dev make生成libapue.a Page4 实例 {代码…} 说明: 实现简单的ls命令,与标准ls不同的是,此程序列出的目录中的文件名不是以字母顺序列出的。 包含了dirent.h,调用其中的opendir和readdir函数,以及diren…
无分类 使用-C-封装互斥量条件变量 本文使用 C++ RAII 机制来封装互斥量、条件变量,使其自动管理互斥量、条件变量的生命周期,避免手动维护带来的资源泄露等各种问题。本文使用的是 Linux 下 Pthread 库。
无分类 基于-C-11-实现的-Web-服务器 本人参照《Linux多线程服务端编程》,以及模仿该书使用的muduo,写了一个轻量的 Web 服务器。 源码 Github。代码中有比较详细的注释,可作为看《Linux多线程服务端编程》的辅助材料。 已完成 完成基本的Tcp(被动连接)库; 简易的HTTP服务器,可访问主页HTML和网站favicon图标。 技术 主从 reactor 模式: 主 reactor …