随笔分类 - C语言
摘要:服务器时间同步是一个容易被忽视的问题,但在企业级应用环境中,不同服务器之间的时间差很可能引发应用系统问题。Windows提供的w32tm程序可以用来设置时间同步服务器,其用法如下: 1、指定外部时间源并与之同步 w32tm /config /manualpeerlist:"210.72.145.44
阅读全文
摘要:#include <stdio.h>#include <ctype.h>#define STR_VALUE(val) #val#define STR(name) STR_VALUE(name)#define PATH_LEN 256#define MD5_LEN 32int CalcFileMD5(
阅读全文
摘要:<!-- [startarticletags]--><!-- [endarticletags]--> CPU亲合力就是指在Linux系统中能够将一个或多个进程绑定到一个或多个处理器上运行. 一个进程的CPU亲合力掩码决定了该进程将在哪个或哪几个CPU上运行.在一个多处理器系统中,设置CPU亲合力的掩
阅读全文
摘要:https://www.cnblogs.com/imapla/p/4234258.html Linux线程优先级 Linux内核的三种调度策略: 1.SCHED_OTHER 分时调度策略 2.SCHED_FIFO 实时调度策略,先到先服务。一旦占用cpu则一直运行。一直运行直到有更高优先级任务到达或
阅读全文
摘要:http://www.yiibai.com/unix_system_calls/iopl.html iopl - 改变I / O权限级别 内容简介 #include <sys/io.h> int iopl(int level); 描述 iopl() 改变当前进程的I/ O特权级别,在级别 level
阅读全文
摘要:根据USB规范的规定,所有的USB设备都有供应商ID(VID)和产品识别码(PID),主机通过不同的VID和PID来区别不同的设备。 根据USB规范的规定,所有的USB设备都有供应商ID(VID)和产品识别码(PID),主机通过不同的VID和PID来区别不同的设备。 VID和PID都是两个字节长,其
阅读全文
摘要:现在已经能够通过libudev获取U盘插入时它的节点名(通过函数udev_device_get_devnode()),是/dev/sdb1 我现在的做法是读取/proc/mounts文件,找到有/dev/sdb1的那一行,解析出挂载点/media/11111 /proc/mounts文件内容如下:
阅读全文
摘要:不同机器内部对变量的字节存储顺序不同,有的采用大端模式(big-endian),有的采用小端模式(little-endian)。 大端模式是指高字节数据存放在低地址处,低字节数据放在高地址处。 小端模式是指低字节数据存放在低地址处,高字节数据放在高地址处。 在网络上传输数据时,由于数据传输的两端可能
阅读全文
摘要:void __cdecl _free_base (void * pBlock) { int retval = 0; if (pBlock == NULL) return; RTCCALLBACK(_RTC_Free_hook, (pBlock, 0)); retval = HeapFree(_crt
阅读全文
摘要:“堆”和“栈”并不是数据结构上的Heap跟Stack,而是程序运行中的不同内存空间。 那么这就简单了,栈是程序启动的时候,系统分好了给你的,你自己用,系统不干预。 堆是用的时候才向系统申请的,用完了还回去,这个申请和交还的过程开销相对就比较大了。 栈与堆都是Java用来在Ram中存放数据的地方。 栈
阅读全文
摘要:看着这个标题没发狂吧?函数指针就够一般初学者折腾了,函数指针数组就更加麻烦,现在的函数指针数组指针就更难理解了。其实,没这么复杂。前面详细讨论过数组指针的问题,这里的函数指针数组指针不就是一个指针嘛。只不过这个指针指向一个数组,这个数组里面存的都是指向函数的指针。仅此而已。下面就定义一个简单的函数指
阅读全文
摘要:现在我们清楚表达式“char * (*pf)(char * p)”定义的是一个函数指针pf。既然pf 是一个指针,那就可以储存在一个数组里。把上式修改一下:char * (*pf[3])(char * p);这是定义一个函数指针数组。它是一个数组,数组名为pf,数组内存储了3 个指向函数的指针。这些
阅读全文
摘要:#pragma hdrstop#pragma hdrstop 表示预编译头文件到此为止,后面的头文件不进行预编译。BCB 可以预编译头文件以加快链接的速度,但如果所有头文件都进行预编译又可能占太多磁盘空间,所以使用这个选项排除一些头文件。有时单元之间有依赖关系,比如单元A 依赖单元B,所以单元B 要
阅读全文
摘要:#pragma可以说是C++中最复杂的预处理指令了,下面是最常用的几个#pragma指令: #pragma comment(lib,"XXX.lib") 表示链接XXX.lib这个库,和在工程设置里写上XXX.lib的效果一样。 #pragma comment(linker,"/ENTRY:main
阅读全文
摘要:上面对define 的使用都很简单,再看看下面的例子:#define BSC //#define BMC /*#define EMC */D),BSC my single-line commentE),BMC my multi-line comment EMCD)和E)都错误,为什么呢?因为注释先于
阅读全文
摘要:ANSI 标准C 还定义了如下几个宏:_LINE_ 表示正在编译的文件的行号_FILE_ 表示正在编译的文件的名字预处理名称意义#define 宏定义#undef 撤销已定义过的宏名#include 使编译程序将另一源文件嵌入到带有#include 的源文件中#if #if 的一般含义是如果#if
阅读全文
摘要:你也许听说过“国际C 语言乱码大赛(IOCCC )”,能获奖的人毫无疑问是世界顶级C 程序员。这是他们利用C 语言的特点极限挖掘的结果。下面这个例子就是网上广为流传的 一个经典作品:// 原始代码如下 #include <stdio.h> char *a;main(int t,int _,char*
阅读全文
摘要:在日常的编程中,有时候需要在结构体中存放一个长度动态的字符串,一般的做法,是在结构体中定义一个指针成员,这个指针成员指向该字符串所在的动态内存空间,例如: [cpp] view plain copy print? typedef struct test { int a; double b; char
阅读全文