C/C++
lemoncyb
这个作者很懒,什么都没留下…
展开
-
C语言malloc分配内存时机
最近在学习 C 的字符串操作函数时偶然发现 malloc 分配内存时的细节,使用 malloc 语句申请内存后,操作系统不会立即分配相应的堆内存,而是在实际使用到这片内存时才分配。如以下代码:#include #include #include int main(){ char *prefix = "prefix"; cha原创 2013-09-23 16:07:52 · 1534 阅读 · 0 评论 -
线程同步之条件变量使用手记
由来:最近一直在想怎么高效率的在IO线程接收到数据时通知逻辑线程(基于线程池)工作的问题,像网络编程的服务器模型的一些模型都需要用到这个实现,下面我这里简单的罗列一个多线程的网络服务器模型 半同步/半异步(half-sync/half-async): 许多餐厅使用 半同步/半异步 模式的变体。例如,餐厅常常雇佣一个领班负责迎接顾客,并在餐厅繁忙时留意给顾客安排桌位,转载 2013-12-13 17:53:01 · 654 阅读 · 0 评论 -
fseek() ,fseeko(),fseeko64()讲解
fseek() 函数讲解:头文件: #include 函数定义:int fseek(FILE *stream, long offset, int fromwhere);参数:stream:文件指针fromwhere:偏移起始位置offset:偏移量功能:函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere(偏移起始位置:文件头0(SE原创 2013-11-20 11:21:45 · 19492 阅读 · 0 评论 -
struct stat结构体的详解和用法
[cpp] view plaincopy//! 需要包含de头文件 #include #include int stat(const char *filename, struct stat *buf); //! prototype,原型 struct stat { dev_t转载 2013-11-20 11:03:07 · 1057 阅读 · 0 评论 -
stat()函数讲解
stat函数讲解(转) 表头文件: #include #include 定义函数: int stat(const char *file_name, struct stat *buf);函数说明: 通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值: 执行转载 2013-11-20 11:24:25 · 1102 阅读 · 0 评论 -
C语言 -- fflush()
fflush用于清空缓冲流,虽然一般感觉不到,但是默认printf是缓冲输出的。fflush(stdout),使stdout清空,就会立刻输出所有在缓冲区的内容。fflush(stdout)这个例子可能不太明显,但对stdin很明显。如下语句:int a,c;scanf("%d",&a);c=getchar();输入:12(回车)那么 a=12 ,c= '\转载 2013-10-15 15:16:50 · 579 阅读 · 0 评论 -
pthread用法简介,pthread_creat(),pthread_join
线程创建#include int pthread_create(pthread_t *thread, const pthread_attr_t * attr, void *(*start_routine)(void *), void *arg);参数:Ø转载 2013-09-26 17:37:46 · 1629 阅读 · 0 评论 -
真正认识 REALLOC 的工作方式
realloc 用过很多次了。无非就是将已经存在的一块内存扩大。char* p = malloc(1024);char* q = realloc(p,2048);现在的问题是我们应该如何处理指针 p。 刚开始按照我最直观的理解,如果就是直接将 p = NULL;。 到最后只需要释放 q的空间就可以了。因为最近在做个封装。结果在做单元测试的时候发现。有时候我在 free(转载 2013-09-25 22:35:58 · 591 阅读 · 0 评论 -
unit8_t, unit16_t, unit32_t, unit64_t
最近看代码里面涉及到 unit8_t 等数据类型,显然不是 C 原始数据类型,看名字猜测应该是使用 typedef 定义的。这样做主要是为了代码维护和移植时比较方便,比如C中没有bool,于是在一个软件中,一些程序员使用int,一些程序员使用short,会比较混乱,最好就是用一个typedef来定义,如:typedef char bool;按照posix标准,一般整形对应的*_t类型为原创 2013-09-25 17:04:04 · 13282 阅读 · 0 评论 -
size_t 与 int 区别
size_t 类型定义在cstddef头文件中,该文件是C标准库的头文件stddef.h的C++版。size_t 是一个与机器有关的 unsigned 类型,其大小足以保证存储内存中对象的大小。具体实现时,在32位机器和64位机器中表示范围不同:32位机器size_t = unsigned int4字节64位机器size_t = un原创 2013-09-25 15:00:29 · 8460 阅读 · 0 评论 -
char 与 unsigned char
最近看代码时发现里面有用 unsigned char,疑惑与 char 的区别,搜集答案如下:char 和 unsigned char 本质上都是8字节,一个byte,都表示字符类型,不同的是进行算术和位操作时对应的数值范围不同:char-128-127unsigned char0-255char 把最高位当符号位原创 2013-09-25 11:03:37 · 902 阅读 · 0 评论 -
Linux操作系统下的多线程编程详细解析----条件变量pthread_cond_t那些事儿
推荐两个博文:http://www.cnblogs.com/Creator/archive/2012/04/18/2455584.htmlhttp://blog.csdn.net/sunboy_2050/article/details/6031723(以下内容摘自上述两篇博文) 在多线程编程下,常常出现A线程要等待B线程条件完成后再继续进行,这里等待方式有两转载 2013-12-14 21:14:10 · 793 阅读 · 0 评论