Linux/C一次可以write()多少数据?

背景创建一个镜像文件,需要在文件头部创建大约64GB的空洞,采用的方法是使用mmap创建一个64G大小的私有匿名映射,然后用write()将其写入文件。不过每次write()仅写入2147479...

当malloc()依赖mmap()

以下内容整理自Stackoverflow背景在malloc的man page中,NOTES部分有这样一段话:Normally, malloc() allocates memory from th...

Shell获取文件后缀

需求是提取当前目录的bz2压缩文件并解压,下面的示例代码仅是打印出这些文件名,不包含解压操作。代码:#!/bin/bash for file in `ls` do if [ "...

C++字符串对比

C++默认没有提供字符串对比的函数,不过它继承了C中的 strcasecmp() 和 strncasecmp(),可以通过#include <string.h>来使用。两个比较的字符...

C++字符串分割

需求:对一个 string 按照自定义的字符进行切割,返回 vector<string>代码:#include <string> using std::string; #...

Who are you PRIu64?

今天在看 fs-hasher 的源代码,看到了大量的类似这样的代码:printf("File size: %"PRIu64 B\n", hashfile_curfi...

四月书摘——请以你的名字呼唤我

我不羡慕痛苦本身,但我羡慕你会痛。许多人帮我把人生区分为某人之前与某人之后的段落,许多人带来欢喜和忧伤,许多人迫使我的人生偏离了原来的轨道,其他人则没有造成任何不同。时间让我们变得多愁善感。或许...

C 中的 static

印象中之前找过好几次关于 C 语言中 static 关键字的资料,但是一直忘,其实也是找到的资料都没说清楚,这里是一个总结和汇总。0x01 static 全局变量一个进程在内存中的数据布局如下(...

do{...}while(0)的常见用法

去年第一次遇到 do{...}while(0) 的用法,当时以为是那个项目作者的个人习惯,今年开始阅读大量其他开源项目后,发现这种用法很常见,遂查阅资料,现总结如下:

高性能的CDC算法

在Pcompress中,我实现了基于滚动散列的按内容分块的一个变体方案,这个方案同时具有较高的重复数据删除准确性和性能。本文试图解释分块过程,包括Pcompress中完成的分块计算,然后讨论针对...