<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Spring__Rider的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Spring__Rider</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Spring__Rider]]></copyright><item><title><![CDATA[博客摘录「 ethool工具之TSO、UFO、GSO、LRO、GRO和RSS介绍」2024年5月6日]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/138497037</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/138497037</guid><author>Spring__Rider</author><pubDate>Mon, 06 May 2024 15:49:54 +0800</pubDate><description><![CDATA[TSO是针对TCP的，UFO是针对UDP的。如果硬件支持 TSO功能，同时也需要硬件支持的TCP校验计算和分散/聚集 (Scatter Gather) 功能。一种利用网卡对TCP数据包分片，减轻CPU负荷的一种技术，有时也被叫做 LSO (Large segment offload)；TCP Segmentation Offload(网络发送方向)]]></description><category></category></item><item><title><![CDATA[博客摘录「 perf工具使用统计函数调用」2024年4月18日]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/137914744</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/137914744</guid><author>Spring__Rider</author><pubDate>Thu, 18 Apr 2024 11:43:09 +0800</pubDate><description><![CDATA[性能调优时，我们通常需要分析查找到程序百分比高的热点代码片段，这便需要使用 perf record 记录单个函数级别的统计信息，并使用 perf report 来显示统计结果。]]></description><category></category></item><item><title><![CDATA[OS之memory大汇总]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/134791681</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/134791681</guid><author>Spring__Rider</author><pubDate>Mon, 04 Dec 2023 19:15:17 +0800</pubDate><description><![CDATA[《操作系统》之内存篇（一）_操作系统形成物理地址是在哪个阶段_花事了哎的博客-优快云博客《操作系统》之内存篇（二）-分段-分页_内存分段和分页-优快云博客《操作系统》之内存篇(三)-分页的页表结构_花事了哎的博客-优快云博客《操作系统》之内存篇(四)-虚拟内存_虚拟内存页面 父进程 、子进程 映射 的先后顺序-优快云博客《操作系统》之内存篇(五)-页面置换_内存中被修改过的页面加入队列-优快云博客《操作系统》之内存篇(六)-内存映射_操作系统内存映射文件-优快云博客]]></description><category></category></item><item><title><![CDATA[AMBA 5 CHI 协议节点实例和读数据的来源]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/134770052</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/134770052</guid><author>Spring__Rider</author><pubDate>Sun, 03 Dec 2023 20:46:23 +0800</pubDate><description><![CDATA[AMBA 5 CHI 协议节点实例和读数据的来源]]></description><category></category></item><item><title><![CDATA[5.3 标准输入、标准输出和标准错误]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/80795917</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/80795917</guid><author>Spring__Rider</author><pubDate>Sun, 24 Jun 2018 23:35:03 +0800</pubDate><description><![CDATA[    对一个进程预定义了3个流，并且这3个流可以自动地被进程使用，它们是：标准输入、标准输出和标准错误。这些流引用的文件与在3.2节中提到文件描述符STDIN_FILENO、STOUOT_FILENO和STDERR_FILENO所引用的相同。    这3个标准I/O流通过预定义文件指针stdin、stdout和stderr加以引用。这3个文件指针定义在头文件&amp;lt;stdio.h&amp;gt;中。...]]></description><category></category></item><item><title><![CDATA[5.2 流和FILE对象]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/80795706</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/80795706</guid><author>Spring__Rider</author><pubDate>Sun, 24 Jun 2018 23:31:25 +0800</pubDate><description><![CDATA[    在第3章中，所有I/O函数都是围绕文件描述符的。当打开一个文件时，即返回一个文件描述符，然后该文件描述符就用于后续的I/O操作。而对于标准I/O库，它们的操作时围绕流（stream）进行的（请勿将标准I/O术语与System V的STREAMS I/O系统相混淆，STREAMS I/O系统是System V的组成部分，Single UNIX Specification则将其标准化为XSI ...]]></description><category></category></item><item><title><![CDATA[5.1 引言]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/80795677</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/80795677</guid><author>Spring__Rider</author><pubDate>Sun, 24 Jun 2018 23:05:08 +0800</pubDate><description><![CDATA[    本章讲述标准I/O库。不仅是UNIX，很多其他操作系统都实现了标准I/O库，所以这个库由ISO C标准说明。Single UNIX Specification 对ISO C标准进行了扩充，定义了另外一些接口。    标准I/O库处理很多细节，如缓冲区分配、以优化的块长度执行I/O等。这些处理使用户不必担心如何选择使用正确的块长度（如3.9节中所述）。这使得它便于用户使用，但是如果我们不深入...]]></description><category></category></item><item><title><![CDATA[4.25 文件访问权限位小结]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/80793710</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/80793710</guid><author>Spring__Rider</author><pubDate>Sun, 24 Jun 2018 19:32:37 +0800</pubDate><description><![CDATA[    我们已经说明了所有文件访问权限位，其中某些位有多重用途。图4-26列出了所有这些权限位，以及它们对普通文件和目录文件的作用。]]></description><category></category></item><item><title><![CDATA[4.24 设备特殊文件]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/80793538</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/80793538</guid><author>Spring__Rider</author><pubDate>Sun, 24 Jun 2018 19:27:10 +0800</pubDate><description><![CDATA[    st_dev和st_rdev这两个字段经常引起混淆，在18.9节，我们编写ttyname函数时，需要使用这两个字段。有关规则很简单：每个文件系统所在的存储设备都由其主、次设备号表示。设备号所用的数据类型是基本系统数据类型dev_t。主设备号表示设备驱动程序，有时编码为与其通信的外设板；次设备号标识特定的子设备。回忆图4-13，一个磁盘驱动器经常包含若干个文件系统。在同一磁盘驱动器上的各文件...]]></description><category></category></item><item><title><![CDATA[4.23 函数chdir、fchdir和getcwd]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/80793400</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/80793400</guid><author>Spring__Rider</author><pubDate>Sun, 24 Jun 2018 19:11:36 +0800</pubDate><description><![CDATA[    每个进程都有一个当前工作目录，此目录是搜索所有相对路径名的起点（不以斜线开始的路径名为相对路径名）。当用户登录到UNIX系统时，其当前工作目录通常是口令文件（/etc/passwd）中该用户登录项的第6个字段----用户的起始目录（home directory）。当前工作目录是进程的一个属性，起始目录则是登录名的一个属性。    进程调用chdir或fchdir函数可以更改当前工作目录。#...]]></description><category></category></item><item><title><![CDATA[4.22 读目录]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/80793254</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/80793254</guid><author>Spring__Rider</author><pubDate>Sun, 24 Jun 2018 18:50:48 +0800</pubDate><description><![CDATA[    对某个目录具有访问权限的任意用户都可以读该目录，但是，为了防止文件系统产生混乱，只有内核才能写目录。回忆4.5节，一个目录的写权限位和执行权限位决定了在该目录中能否创建新文件以及删除文件，它们并不表示能否写目录本身。    目录的实际格式依赖于UNIX系统实现和文件系统的设计。早期的系统（如V7）有一个较简单的结构：每个目录项是16个字节，其中14个字节是文件名，2个字节是i节点编号。而对...]]></description><category></category></item><item><title><![CDATA[4. 21 函数mkdir、mkdirat和rmdir]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/80791442</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/80791442</guid><author>Spring__Rider</author><pubDate>Sun, 24 Jun 2018 15:24:46 +0800</pubDate><description><![CDATA[    用mkdir和mkdirat函数创建目录，用rmdir函数删除目录。#include &amp;lt;sys/stat.h&amp;gt;int mkdir(const char *pathname, mode_t mode);int mkdirat(int fd, const char * pathname, mode_t mode);                                  ...]]></description><category></category></item><item><title><![CDATA[4.20 函数futimens、utimenstat和utimes]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/80791010</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/80791010</guid><author>Spring__Rider</author><pubDate>Sun, 24 Jun 2018 14:40:49 +0800</pubDate><description><![CDATA[    一个文件的访问和修改时间可以用以下几个函数更改。futimens和utimenstat函数可以指定纳秒级精度的时间戳。用到的数据结构是与stat函数族相同的timespec结构（见4.2节）。#include &amp;lt;sys/stat.h&amp;gt;int  futimens(int fd, const struct timespec times[2]);int utimensat(int f...]]></description><category></category></item><item><title><![CDATA[4.19 文件的时间]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/80790884</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/80790884</guid><author>Spring__Rider</author><pubDate>Sun, 24 Jun 2018 14:12:23 +0800</pubDate><description><![CDATA[    在4.2节中，我们讨论了Single UNIX Specification 2008版如何提高stat结构中时间字段的精度，从原来的秒提高到秒加上纳秒。每个文件属性所保存的实际精度依赖于文件系统的实现。对于把时间戳记录在秒级的文件系统来说，纳秒这个字段就会被填充为0.对于时间戳的记录精度高于秒级的文件系统来说，不足秒的值被转换成纳秒并记录在纳秒这个字段中。    对每个文件维护3个时间字段...]]></description><category></category></item><item><title><![CDATA[4.18  创建和读取符号链接]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/80768318</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/80768318</guid><author>Spring__Rider</author><pubDate>Fri, 22 Jun 2018 01:09:56 +0800</pubDate><description><![CDATA[    可以用symlink或symlinkat函数创建一个符号链接。#include &amp;lt;unstd.h&amp;gt;int symlink(const char * actualpath, const char * sympath);int symlinkat(const char * actualpath, const char * sympath);                     ...]]></description><category></category></item><item><title><![CDATA[4.17 符号链接]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/80767574</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/80767574</guid><author>Spring__Rider</author><pubDate>Thu, 21 Jun 2018 23:39:05 +0800</pubDate><description><![CDATA[    符号链接是对一个文件的间接指针，它与上一节所述的硬链接由所不同，硬链接直接指向文件的i节点。引入符号链接的原因是为了避开硬链接的一些限制。硬链接通常要求链接和文件位于同一文件系统中。只有超级用户才能创建指向目录的硬链接（在底层文件系统支持的情况下）。    对符号链接以及它指向何种对象并无任何文件系统限制，任何用户都可以创建指向目录的符号链接。符号链接一般用于将一个文件或整个目录结构移到系...]]></description><category></category></item><item><title><![CDATA[4.16 函数rename和renameat]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/80753824</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/80753824</guid><author>Spring__Rider</author><pubDate>Wed, 20 Jun 2018 23:39:16 +0800</pubDate><description><![CDATA[    文件或目录可以用rename函数或者renameat函数进行重命名。#include &amp;lt;stdio.h&amp;gt;int rename(const char * oldname, const char * newname);int renameat(int oldfd, const char *oldname, int newfd, const char *newpath);      ...]]></description><category></category></item><item><title><![CDATA[4.15 函数link、linkat、unlink、unlinkat和remove]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/80740195</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/80740195</guid><author>Spring__Rider</author><pubDate>Tue, 19 Jun 2018 23:27:49 +0800</pubDate><description><![CDATA[    如上节所述，任何一个文件可以有多个目录项指向其i节点。创建一个指向现有文件的链接的方法是使用link函数或linkat函数。#include &amp;lt;unistd.h&amp;gt;int link(const char *existingpath, const char * newpath);int linkat(int efd, const char *existingpath, int nf...]]></description><category></category></item><item><title><![CDATA[4.14 文件系统]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/80739934</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/80739934</guid><author>Spring__Rider</author><pubDate>Tue, 19 Jun 2018 23:01:24 +0800</pubDate><description><![CDATA[    为了说明文件链接的概念，先要介绍UNIX文件系统的基本结构。同时，了解i节点和指向i节点的目录项之间的区别也是很有益的。    目前，正在使用的UNIX文件系统有多种实现。例如，Solaris支持多种不同类型的磁盘文件系统：传统的基于BSD的UNIX文件系统（称为UFS），读、写DOS格式软盘的文件系统（称为PCFS），以及读CD的文件系统（称为HSFS）。在图2-20中，我们已经看到了不...]]></description><category></category></item><item><title><![CDATA[4.13 文件截断]]></title><link>https://blog.youkuaiyun.com/Spring__Rider/article/details/80739872</link><guid>https://blog.youkuaiyun.com/Spring__Rider/article/details/80739872</guid><author>Spring__Rider</author><pubDate>Tue, 19 Jun 2018 22:32:32 +0800</pubDate><description><![CDATA[    有时我们需要在文件尾端处截去一些数据以缩短文件。将一个文件的长度截断为0是一个特例，在打开文件时使用O_TRUNC标志可以做到这一点。为了截断文件可以调用函数truncate和ftruncate.#include &amp;lt;unistd.h&amp;gt;int   truncate(const char * pathname, off_t length);int   ftruncate(inf f...]]></description><category></category></item></channel></rss>