c
文章平均质量分 79
Wmll1234567
坚持不可小瞧
展开
-
linux下多线程编程、线程间同步通信及应用详解、及踩过的坑
0.写在前面有关进程讲解另一篇博客:https://blog.csdn.net/Wmll1234567/article/details/114653213?spm=1001.2014.3001.5501在面试时总会被问到 进程和线程区别?如何通过linux命令查看线程?原创 2021-05-26 13:56:43 · 837 阅读 · 2 评论 -
linux进程切换、多进程编程、进程间通信详解
1.进程相关概念介绍1.查看电脑上运行的进程:ps 可以看到第一个进程 init .在Linux系统中,第一个进程是系统固有的、与生俱来的或者说是由内核的设计者安排好的,内核在引导并完成了基本的初始化以后,就有了系统的第一进程。并且所有的进程都是由这个原始进程或者它的子孙后代所创建,都是这个进程的“后代”2.什么是进程1、进程可以看做程序的一次执行过程。在linux下,每个进程有唯一的PID标识进程。PID是一个从1到32768的正整数,其中1一...原创 2021-03-12 09:01:37 · 890 阅读 · 2 评论 -
c语言运算符优先级、结合性记录
目录运算符优先级和结合性一览表一些容易出错的优先级问题一些有疑问的可以自己去测试测试,去实际体会他的特性运算符优先级和结合性一览表 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 ..原创 2021-03-11 21:06:41 · 159 阅读 · 0 评论 -
linux下简单/进阶TCP客户端/服务器端实现、原理及代码超详解
目录0.预备知识另外我们学习了这么多基础理论知识,程序上如何实现呢?上面所提到的函数是linux/unix系统平台下的函数,根据大致流程,可以得到以下,客户端,服务端建立连接的伪代码过程探索以上涉及的socket(),connect(),bind(),listen(),accept()函数用法,参数,返回值含义【1】socket()【2】connect(): 客户端用来和服务端建立连接的【3】bind():用于服务器端,服务器的IP地址和端口号通常固定不变,客户端得...原创 2021-03-10 16:22:05 · 1606 阅读 · 0 评论 -
Makefile执行过程中出错:make: *** No rule to make target ` ‘, needed by xxx. Stop.
问题:在mkefile添加了一点东西,编译却报了一些错误,不熟悉makefile的我找错花费了不少时间。这里记录一下解决过程。同时总结一下其他错误如何让一个文件里的空格回车都能显示出来? 工具:Notepad++ 【错误一】Makefile:34: *** missing separator. Stop. 原因1: 上方标红的地方多了一个空格,报这样的错误,是因为把这个空格当作文件名字了,所以报错少了分隔符号...原创 2021-02-27 17:52:35 · 20994 阅读 · 0 评论 -
unix时间戳转化为时间格式(C代码实现:2种方式)
方法一:在网络上很多人用这种4年为一周期,有点刻意而为之(另:好多人贴的代码闰年都理解错了!!!),而且只适用2038之前,有点死板方法二:方法虽然有点笨,但是很准确啦,就是从1970年试了,逼近法。无外乎时间比第一种理论上多了那么一点,但这种时间差距应该很小,可以忽略方法一:代码示例此代码之前的错误版本还在网上大面积存留。请谨慎!!!!我就是用的那个错误的,测试发现问题后找到如下正确版本/******************************************...原创 2021-02-20 17:33:04 · 2058 阅读 · 2 评论 -
华为机试-购物单-示例结果有问题,忽略买主件必须买附件这一条件
我的代码通过率:60%(我觉得我的代码已经很清晰了)他这个示例输出明显就有问题:2000 10500 1 0400 4 0300 5 1400 5 1200 5 0500 4 5400 4 0320 2 0410 3 0400 3 5如果7430这个结果正确,那么最后一个主件410*3必须有,剩下6200怎么凑都不符合条件、像是忽略了买附件必须买主件这一条件。#include <stdio.h>#include <vector>#inc..原创 2021-01-26 19:52:27 · 378 阅读 · 0 评论 -
C++学习总结积累——(探索容器、及迭代器失效场景和原因)STL解析和应用
0.什么是STL?C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。C++ 标准模板库的核心包括以下三个组件:组件 描述 容器(Containers) 容器是用来管理某一类对象的集合。C++ 提供了各种不同类型的容器,比如 deque、list、vector、map 等。 算法(Algorithms) 算法作用于容器。它们提供了执行各种操作的方式,包括原创 2020-12-30 13:53:43 · 526 阅读 · 0 评论 -
gcc 编译过程(图解)、编译参数、使用规则解析
gcc 编译参数、使用规则解析原创 2020-11-20 16:12:39 · 2045 阅读 · 0 评论 -
C/C++学习总结积累(超详细)——C提高:预处理(include、define、可变宏参)、编译、汇编、链接
1.预处理的基本概念C语言对源程序处理的四个步骤:预处理、编译、汇编、链接,最终形成可执行的目标程序(二进制)预处理是在程序源代码被编译之前,由预处理器(Preprocessor)对程序源代码进行的处理。这个过程并不对程序的源代码语法进行解析,但它会把源代码分割或处理成为特定的符号为下一步的编译做准备工作2.#include<> 和 #include“ ” 区别3.宏,什么是宏?宏有什么应用?...原创 2020-11-16 09:34:16 · 672 阅读 · 0 评论 -
函数指针 、指针函数、回调函数应用举例
目录0.首先有几点是必须要知道的1.函数指针2.指针函数3.回调函数(其实就回调函数是函数指针的一种用法)应用举例:结果演示:0.首先有几点是必须要知道的1.[]与变量结合的优先级高于*、*优先和声明类型结合(在没有括号的情况下)2.理清楚复杂短句,找到“本质”3.时刻牢记指针就是地址中文语言的特性:形容词在前,名词在后故而:函数指针:本质就是指针:指向函数的指针 指针函数:本质就是函数:本质是一个函数,而该函数的返回值是一...原创 2020-09-27 16:05:49 · 227 阅读 · 1 评论 -
c/c++字符串处理函数解析: 拷贝(strcpy/memcpy/strncpy),裁剪(split),拼接(strcat),类型转换(atoi/itoa/atof/atol),字符串格式化输出等
c语言的字符串库函数,在string.h头文件中1.拷贝函数strcpy、memcpy、strncpystrcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。 怎么才算字符串?字符串和字符数组区别? 字符串的结尾是默认有一个\0作为结束符的。字符数组你不给他手动赋值,他是没有的。如果用strcpy这个拷贝函数,就要小心自己的输入参数是不是一个字符串,如果是字符数组,一定不要忘记结尾处赋值\0,不然的话就会溢出了,可以手动试...原创 2020-09-25 16:08:18 · 4135 阅读 · 0 评论 -
网络问题、抓包报文分析,相关知识总结
1.端口占用问题?https://blog.csdn.net/weixin_41231928/article/details/102613178原创 2020-09-09 10:24:33 · 844 阅读 · 0 评论 -
c++primer——第五版——第6章——学习笔记
c++primer——第五版——第6章——学习笔记1.return 完成两项工作:1,返回return语句中的值,2.将控制权转移回主调函数2,局部对象局部变量:形参和函数体内部定义的变量;局部变量的生命周期依赖于定义他的方式自动对象:只存在于块执行期间的对象称为自动对象 :例如:形参局部静态对象:内置类型的局部静态变量初始化为0;3.函数声明 也称作函数...原创 2020-08-14 16:55:00 · 160 阅读 · 0 评论 -
c++primer——第五版——第二章——学习笔记
long和int一般有一样的尺寸,如果你的数字式超过了int的表示范围,选用long long 注意char在不同编译器类型了可能不同,有时有符号,有时候默认无符号 执行浮点数最好用double.事实上,对于某些机器来说,双精度运算甚至比单精度快。 long double提供的精度在一般情况下是没有必要的,况且他的运行时耗也不容忽视 bool:非零即真() bool ...原创 2020-08-14 16:52:58 · 165 阅读 · 0 评论 -
一些字符串函数的用法
strnpy: https://blog.csdn.net/sinat_30071459/article/details/72771137strncat: https://blog.csdn.net/sky2098/article/details/1530662strchr: https://blog.csdn.net/github_33736971/article/details/5...原创 2018-04-18 09:26:18 · 201 阅读 · 0 评论 -
c语言中unlink()函数详解
头文件:#include <unistd.h>定义函数:int unlink(const char * pathname);函数说明:unlink()会删除参数pathname 指定的文件. 如果该文件名为最后连接点, 但有其他进程打开了此文件, 则在所有关于此文件的文件描述词皆关闭后才会删除. 如果参数pathname 为一符号连接, 则此连接会被删除。返回值:成功则返回0, ...原创 2020-08-14 16:50:43 · 12499 阅读 · 0 评论 -
详细解释如何计算一个结构体的大小?
其他:1.数组下标可为负:a[-1] 相当于 a+(-1);2.联合体大小就是成员中最大类型的大小;如何计算一个结构体的大小? 例如:struct Test{int Num;char *name;//指针大小取决于编译器的位数 ,64位 为:8字节 32位为:4字节short date;char ch;}*p;总结计算大小规则:...原创 2019-02-18 21:39:50 · 1906 阅读 · 0 评论 -
typedef 和#define有什么区别?
原创 2019-02-24 20:52:22 · 368 阅读 · 0 评论 -
c语言中的creat()函数使用及参数详解
头文件:#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>#include <fcntl.h> // 提供open()函数 #include <sys/types.h> ...原创 2018-10-10 10:21:58 · 27889 阅读 · 0 评论 -
C primer plus习题2.11解答
解析: 称为函数 解析: 违背了c语言规则 解析: 逻辑错误,语法正确,但是不符合编程的正确结果 解析:解析:解析: 关键字为int 和char; main是一个函数名,函数是c中的术语,=是一个运算符解析:printf("ther...原创 2018-08-13 09:03:10 · 268 阅读 · 0 评论 -
C primer PLus 第五版习题1.12、1.13解答
解析1.12一个程序的可移植性好,是指它的代码不经修改就可以在多种不同的计算机系统上编译成可以成功运行的程序 源码是指程序员用语言编写的代码;目标代码是指编译器把代码编译成计算机能读懂的机器语言代码,但是不完整,缺乏相应的库文件;而可执行文件则是通过链接后,将库函数加入进来,形成可执行程序的全部机器代码 定义目标->设计程序->编写程序代码->编译->运行-&...原创 2018-08-11 10:55:55 · 403 阅读 · 0 评论 -
c语言文件函数的使用
//2018/4/21 文件的使用#include<stdio.h>#include<stdlib.h>//exit#include<string.h>#include<ctype.h>#define N 100//以下函数是什么意思?/*fclose();feof();fgetc()'fgets();fopen()...原创 2018-05-31 20:07:02 · 551 阅读 · 0 评论 -
英文单词个数的统计
//2018 /4/21#include<stdio.h>#include<string.h>#include<ctype.h>#define init_word 0#define in_word 1#define out_word 2#define end_word 3int count_word(char *ch);int main(...原创 2018-05-31 19:42:38 · 4607 阅读 · 0 评论 -
二分查找的实现及解析
二分查找://2018年4月21日 #include<stdio.h>int search_value(int *ar,int n,int x);//(二分查找法)int search_value_digui(const int *ar,int left,int right, int x);int main(){ int a[10] = {13,24,34,41,4...原创 2018-04-24 16:22:46 · 463 阅读 · 0 评论 -
函数调用规则
2018年4月12日星期四函数调用规则函数调用过程:可在vc上逐步调试查看寄存器,内存的变化情况1.一些寄存器的用法 // ebp eip esi // push pop(影响esp的值) eip(1.放的是当前执行代码(当前指令)的地址2.call,ret(从当前函数返回),这俩指令将会影响eip的值break,// 可翻译为jmp(无条件跳转))jne 栈帧(...原创 2018-04-13 11:15:00 · 572 阅读 · 0 评论 -
Sizeof的用法;他是一个函数吗?
1.一直以来以为sizeof是一个函数,看过c语言深度剖析才知道,sizeof是一个骗子,它伪装的很好~~~以下我们用实际代码来告诉你它其实是 关键字 #include<stdio.h>int main(){int i = 0;printf("%d %d %d\n",sizeof(int),sizeof(i),sizeof i);return 0; }我...原创 2018-03-28 11:03:22 · 9488 阅读 · 0 评论 -
c语言初学习问题集锦
1. 为什么整型可以赋给char型? 因为字符说到底还是用一个无符号整型来表示的,具体每个字符用什么值来表示请见ascii码表。。former=0就相当于把ascii码表里用0表示的字符赋值给了former,你既可以把这个字符以char型打印出来,也可以把它当无符号整数0来操作。在c语言里,甚至可以对char型加加减减。 字符型本就是以ASCII存的,就是整型系统自动进行了隐式转换,但i...原创 2018-03-22 10:53:16 · 347 阅读 · 0 评论 -
指针初学笔记(两个数交换的函数----关于指针的理解)
看看这个程序哪里出错了?// 2018/3/22 7:00#include<stdio.h>void swap(int *x, int *y);int main(){ int x = 10,y = 12; swap(&x,&y); printf("%d %d\n", x,y); return 0;}void swap(int *x, int *y...原创 2018-03-23 10:22:23 · 290 阅读 · 0 评论 -
define SIZE 10; //const int size = 10; //enum {LEN = 10}三种定义的区别
1.const int NUM=10 #define NUM 10 enum {LEN = 10}(1)Ddefine宏常量是在预编译阶段进行简单替换。枚举常量则是在编译的时候确定其值(2)const是定义一个常量,其值不可以改变2018年3月31日: Const用法全局...原创 2018-03-23 09:48:39 · 2063 阅读 · 0 评论 -
c——primer_第三章——复习题and练习题解答
解析:解析:解析:解析:解析:解析:解析:解析:解析:解析:解析:1.#include<stdio.h>int main(void){ unsigned int a=4294967295; float b=3.4E38; float c=b*10; float d=0.123...原创 2018-08-22 14:06:30 · 485 阅读 · 0 评论 -
getline_函数解析(在c和c++中的区别)
EOF是C语言中为了区分有效数据和输入结束符的。C语言采用的解决办法是:在没有输入时getchar函数将返回一个特殊值,这个特殊值与任何实际字符都不同。这个值成为EOF(end of file ,文件结束)。我们在声明变量c 的时候,必须让它大到足以存放getchar函数返回的任何值。之所以不把c声明成char类型,是因为它必须足够大,除了能存储任何可能的字符外还要能存储文件结束符EOF。...原创 2018-08-31 11:52:45 · 385 阅读 · 0 评论 -
c_primer_第五版——第8章知识总结 --------及习题解答
c_primer_第五版——第8章知识总结1.文件是一块存储信息的存储器区域2.3. 重定向4.scanf()函数会将换行符留在输入队列里...原创 2020-08-14 16:51:36 · 123 阅读 · 0 评论 -
c_primer_第五版——第7章知识总结
c_primer_第五版——第7章知识总结1.2.ctype.h系列字符函数 3.如果没有花括号指明,else与和他最近的一个if相匹配4.5.continue的用法 1.continue用作占位符 2. continue语句导致循环体的剩余部分被跳过,,continue语句之后发生的动作是求循环表达式的值。1.2....原创 2018-09-27 16:42:34 · 253 阅读 · 0 评论 -
用mktime的一些坑(月份未减一所导致的问题)
问题?用mktime函数时,月份未减一会出现什么情况?time_t mktime(struct tm *)其中的tm结构体定义如下:struct tm {int tm_sec;/* 秒 – 取值区间为[0,59] */int tm_min; /* 分 - 取值区间为[0,59] */int tm_hour;/* 时 - 取值区间为[0,23] */int tm_mday...原创 2018-09-27 13:52:01 · 7290 阅读 · 0 评论 -
c_primer——第五版——第5章习题解析
复习题5.5:其中第一个printf语句等同于 printf("%s! C is cool!\n","%s! C is cool!\n")练习题5.1:#include<stdio.h>#define HOUR 60int main(){ int minute = 1; int hour; while(minute) { printf("请输入...原创 2018-09-04 11:55:31 · 525 阅读 · 0 评论 -
数组用%s输出,内容重叠,覆盖,乱码问题
详细解释请见此链接下的练习题:1:https://mp.csdn.net/postedit/82381427(原创,有实例测试)原创 2018-09-08 16:45:11 · 3420 阅读 · 0 评论 -
scanf()函数用法规则探索——c语言,以及%c和%s的语法特性
一: 针对%c读入从以上程序测得,对于%c 来说 scanf()接收键盘输入的所有东西,遇回车结束输入 ,可以读入空格,句号 当scanf以%c接收一串字符时,每次只能接收一个字符,即单个字符 我们用while测试可知:只要是键盘输入的字符,调用他时就会自动接收,并且接收后自动指向下一个位置,要不然怎么接收的an...后面的一串串,直到遇到回车我们while循环加入两句话:scanf...原创 2018-09-08 11:59:19 · 43148 阅读 · 7 评论 -
c_primer_第五版——第6章知识总结
目录 第6章知识总结while语句的注意点:使用关系运算符和表达式:真值的问题新的_Bool类型关系运算符的优先级不确定循环与计数循环 更多赋值运算符:+=,-+,*= ,/+ ,%=逗号运算符:do while选择哪种循环数组:使用函数返回值的循环示例: ...原创 2018-09-05 11:52:48 · 361 阅读 · 0 评论 -
c_primer——第五版——第六章习题答案&解析
复习题 略练习题:1.来看看结果:右上方用IDE vs2012运行结果,右下方为Gcc编译运行结果那为什么vs编译的结果zimu1把zimu和zimu1的都输出了,为什么? 由于是在栈中申请的空间,zimu和zimu1都在一个栈空间里,可能由于栈的生长方向导致,我们来测试一下:结果如下图(vs):我们可以看见栈的生长方向向下,故而由于zimu1没有结束...原创 2020-08-14 16:50:24 · 161 阅读 · 0 评论