03 2023 档案
摘要:需求 Linux程序中,常有这样的需求:判断当前程序是否为root权限启动。如果是,正常运行;如果不是,则打印日志,退出程序。 root用户特点 要判断是否为root权限启动,可以先看看root用户特点。root用户典型特点:UID(用户id)为0,GID(组id)为0。 每个用户有对应唯一UID值
阅读全文
摘要:引出问题 在基于消息包的通信协议中,通常会通过一个id或命令名来标识该消息包,程序需要根据不同的标识进行不同的解析策略,提取出想要的内容。例如,一个典型的FTP请求命令是这样的: USER anonymous\r\n 其中,"USER"是请求命令名,"anonymous"是该命令跟着的参数,"\r\
阅读全文
摘要:字面量 字面量是指源码中,固定的常量。比如, const char* p = "abcd"; const std::string s = "efg"; const int v = 10; const double d = 20.1; const unsigned long l = 123465789
阅读全文
摘要:内存池意义 内存的分配与释放会向系统进行申请,陷入内核,而频繁的内存分配、释放会降低应用程序性能。应用程序通常以特定方式使用内存,因此,能通过开发专门的内存管理器来解决这种情况。内存管理器,通常也称为内存池。 内存管理器需要考虑两方面:大小、并发。 大小 1)固定大小:分配单一固定大小内存块对内存管
阅读全文
摘要:获取磁盘信息方式 Linux中,可以在终端用df -h,fdisk -l等命令,查看磁盘信息,但C/C++程序中,如何查看呢? 可以使用statvfs, fstatvfs调用。 statvfs, fstatvfs 函数说明 有2个接口能获取磁盘信息方式,statvfs需要传入一个C风格Posix路径
阅读全文