
C
文章平均质量分 93
TuxedoLinux
这个作者很懒,什么都没留下…
展开
-
ngx_thread_pool_init()
nginx原创 2023-01-07 14:35:30 · 679 阅读 · 0 评论 -
fcntl
http://blog.chinaunix.net/uid/20775448/cid-172636-list-1.htmlhttps://blog.csdn.net/zhoulaowu/article/category/1718823/3Unix系统允许多个进程同时对一个文件进行读写,虽然每一个read或write调用本身是原子的,但内核在两个读写操作之间并没有加以同步,因此当一个进程多次...转载 2019-10-17 13:47:15 · 679 阅读 · 0 评论 -
C 库函数 - fwrite()
描述C 库函数 size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream) 把 ptr 所指向的数组中的数据写入到给定流 stream 中。http://www.runoob.com/cprogramming/c-function-fwrite.html声明下面是 fwrite() 函数的声明。...转载 2018-10-27 14:49:34 · 300 阅读 · 0 评论 -
C/C++中内存区划分、堆和栈的比较
C/C++中内存区划分、堆和栈的比较 一、在C中分区1、栈 — — 由编译器自动分配释放。2、堆 — —需程序员分配释放,若程序员不释放,程序结束由OS回收。3、全局变量区 — — 即静态变量区。全局变量和静态变量的存储是放在一块儿的,初始化的全局变量和静态变量放在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束释放。4、常量区 — — 存储常量...转载 2018-10-28 20:20:28 · 503 阅读 · 0 评论 -
C语言中.h和.c文件解析
C语言中.h和.c文件解析 简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件) 4.连接阶段,将各个目标文件中的各段代码进行...转载 2018-10-23 09:42:56 · 197 阅读 · 0 评论 -
gcc -l参数和-L参数
gcc -l参数和-L参数 -l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了。好了现在我们知道怎么得到库名,当我们自已要用到一个第三方提供的库名字libtest.so,那么我们只要把libtest.so拷贝到/usr/li...转载 2018-10-23 09:40:54 · 215 阅读 · 0 评论 -
gcc Makefile 入门
gcc Makefile 入门 使用make命令编译项目文件入门目录:一、make命令的运行过程二、基本gcc编译命令三、简单Makefile文件的编写四、实例一、make命令的运行过程 在shell的提示符号下,若输入"make",则它会到目前的目录下找寻Makefile这个文件.然后依照Makefile中所记录的步骤一步一步的来执行.在我们写程序的时候,如果事先就把c...转载 2018-10-23 09:37:34 · 430 阅读 · 0 评论 -
C语言字符串操作总结大全(超详细)
C语言字符串操作总结大全(超详细) 本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, ...转载 2018-10-28 14:02:37 · 264 阅读 · 0 评论 -
浅析C语言之uint8_t / uint16_t / uint32_t /uint64_t
浅析C语言之uint8_t / uint16_t / uint32_t /uint64_t。 https://blog.csdn.net/Mary19920410/article/details/71518130一、C语言基本数据类型回顾在C语言中有6种基本数据类型:short、int、long、float、double、char1、数值类型1)整型:short、int、lon...转载 2018-10-28 09:52:36 · 955 阅读 · 0 评论 -
从汇编和底层的角度看c和类c语言
从汇编和底层的角度看c和类c语言 写这篇文章的目的是对近期底层学习的总结,也算是勉励自己吧,毕竟是光靠兴趣苦逼自学不是自己专业的东西要承受很多压力。https://blog.csdn.net/jggyyhh/article/details/50429886?utm_source=blogxg 要想深入理解C语言就不得不要知道几个知识点:1.众所周知用任意一高级语言(不是脚...转载 2018-10-17 15:26:30 · 299 阅读 · 0 评论 -
git-hub c
https://github.com/jobbole/awesome-c-cn转载 2018-10-04 16:49:03 · 274 阅读 · 0 评论 -
do{...}while(0)的意义和用法
http://www.spongeliu.com/415.html do{...}while(0)的意义和用法On October 9, 2012, in C语言, 语言学习, by sponge linux内核和其他一些开源的代码中,经常会遇到这样的代码:do{ ...}while(0)这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么...转载 2018-10-04 14:24:41 · 479 阅读 · 0 评论 -
open fopen CreatFile 区别
open fopen CreatFile 区别https://blog.csdn.net/zwx5225/article/category/817509https://blog.csdn.net/zwx5225/article/category/817509 fopen /open区别UNIX环境下的C 对二进制流文件的读写有两套班子:1) fopen,fread,fwrite...转载 2018-11-01 15:03:59 · 327 阅读 · 0 评论 -
c/c++ 之指针的指针总结
c/c++ 之指针的指针总结 https://blog.csdn.net/u010709783/article/details/78043467char *p=(char *)&n;中括号中为什幺要加个*号(int)后面一般要接一个东西,(int)就是把后面的这个东西转换成int类型的变量 &n是一个整型数值,代表变量n的地址,不包含其所保存的数据的类型信息(也就...转载 2018-11-01 16:46:29 · 390 阅读 · 0 评论 -
char* 和 char[] 的区别
char* 和 char[] 的区别。本文链接:https://blog.csdn.net/yangbodong22011/article/details/79606273一、代码有关下面代码,p和q的区别是什么:int main(int argc, char *argv[]){ char* p = "Hello World"; char q[] = "He...转载 2019-08-27 13:26:54 · 188 阅读 · 0 评论 -
C++ 面试 (1) 指针
C++ 面试 (1) 指针https://www.cnblogs.com/wangguchangqing/category/553845.html指针是C++中一类颇具特色的数据类型,允许直接操作内存地址,实现内存的动态分配。指针问题通常包括指针常量,常量指针,数组指针,指针数组,函数指针,指针传值等。指针和引用的区别 非空区别。在任何情况下都不能使用指向空值的引用。因此如果你使...转载 2019-04-25 16:35:55 · 197 阅读 · 0 评论 -
C++类中this指针的理解
C++类中this指针的理解先要理解class的意思。class应该理解为一种类型,象int,char一样,是用户自定义的类型。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有myclass类型。理解了这个,就好解释this了,my里的this 就是指向my的指针。如果还有一个变量myclass mz,mz的this就是指...转载 2019-03-28 16:32:59 · 257 阅读 · 0 评论 -
面试1
要对绝对地址0x100000赋值,我们可以用(unsigned int*)0x100000 = 1234;那么要是想让程序跳转到绝对地址是0x100000去执行,应该怎么做?【标准答案】*((void (*)( ))0x100000 ) ( );首先要将0x100000强制转换成函数指针,即:(void (*)())0x100000然后再调用它:*((void (*)())0x10...转载 2019-03-28 16:21:54 · 199 阅读 · 0 评论 -
轻松记住大端小端的含义
轻松记住大端小端的含义 或许你曾经仔细了解过什么是大端小端,也动手编写了测试手头上的机器上是大端还是小端的程序,甚至还编写了大端小端转换程序;但过了一段时间之后,当你再看到大端和小端这两个字眼,你的脑中很快浮起了自己曾经做过的工作,却总是想不起究竟哪种是大端、哪种是小端,然后又去查以前写的记录?更让人不快的是,这种经历反反复复,让你十分困扰。如果你和以前的笔者一样,有过这种不快的经历,那么这篇...转载 2019-03-26 14:14:20 · 266 阅读 · 0 评论 -
返回局部变量指针
一般我们都知道不能返回局部变量的指针,但很多人知道其然,不知道所以然,那么接下来我们分析一下,先看两段代码/*test1.c*/#include <stdio.h>char* get_str(){ char str[] = {"hello"}; return str;}int main(){ char* p = get_str();...转载 2019-03-29 17:30:03 · 1231 阅读 · 0 评论 -
【C++】char* 与char []定义的区别
【C++】char* 与char []定义的区别。 https://blog.csdn.net/w417950004/article/details/78614455char* s1=”abc”;s1是一个指针,s1所指向的地址的内容是不可改变的,但是s1可以指向其他地址。s1是指向字符串常量的,它存储在里不可被修改。如下:char* s1="abcd";s1[2]='z'; ...转载 2019-03-22 16:17:49 · 375 阅读 · 0 评论 -
深入理解C语言指针的奥秘-一篇很好的C指针教程
深入理解C语言指针的奥秘-一篇很好的C指针教程指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int*ptr; (2)char*ptr...转载 2019-03-03 18:14:48 · 330 阅读 · 0 评论 -
Void作用(适合初学者)
Void作用(适合初学者) 1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void几乎只有“注释”和限...转载 2018-12-23 16:00:43 · 772 阅读 · 0 评论 -
位运算以及逻辑运算
位运算以及逻辑运算https://www.cnblogs.com/lvchaoshun/p/8159256.html&&和||:逻辑运算符&和|:按位运算符 &&是且的意思,a&&b 两者都为真才为真.||是或的意思,a||b 两者有一为真即真.&,|是位运算符.即对位进行运算,如00000011 &a...转载 2018-11-11 14:59:06 · 874 阅读 · 0 评论 -
回调函数
研究了一段时间回调函数,越看越迷惑,分析并改进了从网上看到的几篇好文,看过后有了自己的看法。我也不知道这些跌跌撞撞的认识是否符合回调的真实原理,若有大侠能帮解惑,自当感激不尽。下面的代码可以在Vs2008下编译并运行:所有的回调函数文章里,能让我一下看明白回调函数的就是这篇文章了,描述简单,一语中的:http://hi.baidu.com/zht7216/item/1dd32e82a68c...转载 2018-08-19 21:39:20 · 170 阅读 · 0 评论 -
C语言函数参数传递
C语言函数参数传递1.值传递void swap(int x,int y){ int temp = x; x = y; y = temp;}void main(){ int a = 10, b = 20; swap(a, b);} 执行后,并不会交换。2.引用传递void swap(int &x,i...转载 2018-08-05 13:35:42 · 779 阅读 · 0 评论 -
c
#include<iostream>using namespace std;int b = 100;void func(int *p){p = &b;}int main(){int a= 10;int *q = &a;func(q);cout << *q << endl;cout << a << endl;return 0...转载 2018-07-02 21:40:24 · 132 阅读 · 0 评论 -
二级指针的作用详解
二级指针的作用详解2015年06月25日 00:37:47阅读数:39483欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/46629065一、概念在如下的A指向B、B指向C的指向关系中:首先C是"一段内容",比如你用malloc或者new分配了一块内存,然后塞进去"一段内容",那就是C了。C的起始地址是0x000...转载 2018-07-02 21:03:16 · 1308 阅读 · 0 评论 -
c语言的数组的地址的表示方法
c语言的数组的地址的表示方法 今天刚发现了c语言数组地址表示另一种不错的方法。这个方法跟指针结合起来,对于操作内存来说,非常方便。 #include<stdio.h> int main(void) { int c[5] = {1,2,3,4,5}; int *ptr =...转载 2018-07-01 21:23:43 · 12466 阅读 · 1 评论 -
c语言中数组和数组的一些计算
其实你这个疑问是概念上的混淆,或者说对指针了解上上的欠缺首先讲int a[3] = {2,3,4};这里的a是这个数组的首地址,比如定义如:int *p = a;这时如果你进行如下操作:p++;printf("%d\n",*p);结果会是输出2,也就是说p+1相当于数组索引加1,但是像你所问的为什么&a和a是相同的 ,首先要知道他们分别代表什么意思,a:像上面所说的是数组的首地...转载 2018-07-01 21:08:30 · 868 阅读 · 0 评论 -
指针
指针:是说指针名表示的是地址。是一个变量,存储的是值的地址,而不是值本身 *运算符被称为间接值或解除引用运算符也可以叫做取地址符 声明一个指针 int * p_data; * p_data的类型为int 由于*运算符被用于指针,因此p_data变量本身必须是指针。 我们说p_data指向int类型,我们还说P_data的类型是指向int的指针,或int*可以这样说p_data是指针(地 址),而...转载 2018-05-25 14:28:52 · 162 阅读 · 0 评论 -
指针的用法
双重指针的用法22、指针一直都是C语言的灵魂,我们平常用得最多的是一维指针,而双重指针用得相对较少,本文是对二维指针进行一个学习。首先看一道习题:char GetMemory(char *memorystr,u8 num){ memorystr = (char*)malloc(num);}int main(void){ char *str = NULL; Ge...转载 2018-05-24 21:42:46 · 666 阅读 · 0 评论 -
explicit
首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的例子:class CxString // 没有使用explicit关键字的类声明, 即默认...转载 2018-05-04 11:34:27 · 259 阅读 · 0 评论 -
C语言函数传递指针参数的问题
C语言函数传递指针参数的问题2016年11月28日 12:14:18阅读数:13418 一个问题是,我们想用一个函数来对函数外的变量v进行操作,比如,我想在函数里稍微改变一下这个变量v的值,我们应该怎么做呢?又或者一个常见的例子,我想利用swap()函数交换两个变量a,b的值,我们应该怎么做呢(好吧,博主是觉得这个问题十分经典)...转载 2018-05-10 01:39:11 · 401 阅读 · 0 评论 -
mutable
1.mutable 关键字 (C++) 字典意思adj. 易变的,不定的;性情不定的 语法意思如果需要在const成员方法中修改一个成员变量的值,那么需要将这个成员变量修饰为mutable。即用mutable修饰的成员变量不受const成员方法的限制。 可以认为mutable的变量是类的辅助状态,但是只是起到类的一些方面表述的功能,修改他的内容我们可以认为对象的状态本身并没有改变的。实际上由于co...转载 2018-05-02 13:28:15 · 9878 阅读 · 0 评论 -
C
基础C++或者C里面最容易让人糊涂应该是指针了,不管是初学者甚至是有经验的童鞋有时候在用指针的时候也会出现一些很隐蔽的错误. 指针本身就是一个很绕的概念,而指针又能够和很多的结构比如数组(二维数组),字符串,内存分配和管理等等一些联系起来变成更加绕的概念.所以基础不好的同学常常会犯一些很无厘头的错误,但是高手也会犯错误,而且更加隐蔽. 接下来所有的文章内容并不能够保证你能够完完全全避免开发中的错误...转载 2018-05-03 20:38:11 · 182 阅读 · 0 评论 -
指针与数组,指针与函数,指针与字符串
指针与数组,指针与函数,指针与字符串一:指针与数组首先我想解释清楚指针与数组名的关系,由下面的代码引入问题,不知道大家有没有好奇过为什么它们三个是一样的?#include<stdio.h>int main(int argc,char *argv[]){ int a[5] = {1,2,3,4,5}; printf("%p %p %p\n",a,&a,&a[0...转载 2018-07-07 21:35:54 · 205 阅读 · 0 评论 -
void * 是什么?
void * 是什么?最近遇到void *的问题无法解决,发现再也无法逃避了(以前都是采取悄悄绕过原则),于是我决定直面它。在哪遇到了? 线程创建函数pthread_create()的最后一个参数void *arg,嗯?传地址还是传值?传值好像有警告。还有别的出现的地方呢看memcpy(),返回值和参数都有void *,那又怎么传呢?下面我们首先来说说void *是什么。一:void *是什么?C...转载 2018-07-07 21:45:27 · 238 阅读 · 0 评论 -
布尔运算 逻辑运算 移位运算
布尔运算 逻辑运算 移位运算1:四种布尔运算&,|,^,~&:相当于&&,表示”与”运算。一假则假。 |:相当于||,表示”或”运算。一真则真。 ^:表示”抑或”,相同状态则为假。 ~:表示”非”,相当于!。运算 结果a [01101001]b [01010101]~a [10010110]~b [10101010]a&b [01000001]a|b [01...转载 2018-07-07 21:47:53 · 1664 阅读 · 0 评论 -
堆和栈的区别
堆和栈的区别 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构...转载 2018-08-05 00:46:28 · 154 阅读 · 0 评论