C程序的存储布局

C程序一般由正文段,初始化数据段,未初始化数据段,栈,堆组成。1 正文段正文段(text segment)存储的是CPU执行的机器指令。一般正文段是共享的,这样的话对于那些频繁执行的程序(比如编辑器、shell等)只需要在内存中保存一份副本就可以了。另外,正文段一般都是只读的,防止程序由于意外修改了自身的指令。2 初始化数据段一般又称为数据段(data segment),这里存储的是程序中定...

Linux文件I/O

0 文件描述符对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数。当打开一个现有文件或者创建一个新文件时,内核项进程返回一个文件描述符。文件描述符的变化范围时0~OPEN_MAX。1 Linux文件I/O函数Linux系统中的大多数文件I/O只需要用到5个函数:open、read、write、lseek、close。int open(const char *path,...

C/C++中如何选择基本数据类型

《C++ Primer》中对于如何选择我们要使用的类型给出了四条建议:如果你知道变量不可能是负值的话,就使用无符号类型。在整数运算中尽量选择int类型,而不是short,因为short一般太小了;在实际中,long一般都是和int是一样长的,所以如果你的数据超出了int能表示的范围,就直接使用long long,而不是long。在算术表达式中不要使用不带符号修饰符的char类型,因为char...

Linux下通用的Makefile文件

经常在Linux下开发程序C/C++的人,Makefile文件必不可少。虽然Makefile有很多规则,但其实我们真正使用的时候往往都只会用到一些常用的特性。碰巧在网上看到一篇通用的C++ Makefile文件的博客,感觉写的不错,转载收藏一下。原文见:http://graybull.is-programmer.com/posts/37758.html。###################...

do {...} while (0)宏的用法

我们在C代码中经常会使用#define去定义宏。在Linux内核代码或是一些比较大型的C项目中,我们经常会见到类似“do {...} while (0)”的宏。那么这样写到底是为什么呢?其实原因很简单——为了避免在不同场景中宏替换产生错误。我们都知道宏在代码预处理阶段会被展开,而这个展开就是简单的文本替换。这里是非常容易出错的。下面我们举一些例子来说明。定义下面宏:#define foo(x...

Linux C线程(2)——线程同步

不论是多进程还是多线程程序设计中,进程或线程同步是一个非常重要的点。这里我们介绍Linux C线程同步的三种方法: 互斥量(mutex) 读写锁 条件变量 1. 互斥量互斥量本质上是一把锁,在访问共享资源前对共享资源加锁,在访问完以后释放互斥量上的锁。互斥量用pthread_mutex_t数据类型来表示,在使用互斥变量之前,必须首先对它进行初始化,可以把它置为常量PTHR...

Linux C线程(1)——基本函数

NB:标准C是没有线程支持的,要在C中使用多线程,需要使用POSIX接口。本文介绍POSIX 多线程的基本函数。1. pthread_create函数原型:int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);函数功能:创建新...

typedef和#define的用法与区别

1. typedef的用法在C/C++中,typedef常用来定义一个标识符或关键字的别名,它是语言编译的一部分,但它并不实际分配内存空间。比如:typedef int INT; typedef int ARRAY[10]; typedef (int*) pInt;typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点。2. #define的用法#define...
站点总览
  • 文章总数:281篇
  • 分类总数:15个
  • 评论总数:449条
  • 运行时间:6年329天
最近评论
Michael翔虽然看似基础,但是深入研究并不简单,赞~PS:最后的「##总结」,语法应该少了个空格啦~
徐小鹏小米手环5的睡眠监测确实不行,
Gordon那写入ES 只能单条写入加routing了? 不能bulk批量加吧? 会影响写入效率么?
Gordon有弊端的吧? 例如以用户ID作为routing 只适合按用户的搜索 没有传用户ID的就无...
多多非常好的文章,学习到了👍
窗外一叶我认为这本书里吹嘘的成分比较多,没有多少干货。移动通信网络(5G6G)和WiFi的界限会越来越...
aa懵逼
yhm流痞
马旭鹏路过
lukez比如ignore_older参数比clean_inactive长..其中逻辑请参考官方文档