随笔分类 - Linux C
开始转战Linux下的C语言编程
摘要:一、函数介绍 函数原型:int sscanf(const char *str, const char *format, ...); 返 回 值:成功返回匹配成功的模式个数,失败返回 -1。 RETURN VALUE These functions return the number of input
阅读全文
摘要:一、生成 coredump core,又称 coredump 文件,准确来讲是 Unix/Linux 的记录机制产生的一种保存程序崩溃时现场状态的记录性文件。当系统中的一些程序在遇到一些错误以及 crash(崩溃)时,系统会自动产生 core 文件记录 crash 时刻的系统信息,主要包括程序运行时
阅读全文
摘要:一、ELF 文件 在介绍 GNU Binutils 前,先来对 ELF 文件做个简单的了解,因为后续所有操作都将围绕 ELF 文件展开。 1.1 ELF的定义 ELF(Executable and Linkable Format)文件是一种目标文件格式,常见的 ELF 格式文件包括: 可执行文件(.
阅读全文
摘要:位域 一、基本概念 1.1 位域的概念 结构体中的冒号表示位域,如: struct bit_struct { unsigned int bit1:10; unsigned int bit2:8; unsigned int bit3:14; } data1; // sizeof data1 = 4 s
阅读全文
摘要:## 一、准备工作 ### 1.1 软件下载 1. VirtualBox:[Downloads – Oracle VM VirtualBox](https://www.virtualbox.org/wiki/Downloads)  { if (ptr) { free(ptr); ptr = NULL; } } int main() { int *p = (int *)mall
阅读全文
摘要:一、初始线程池 1.1 何为线程池? 我们先来打个比方,线程池就好像一个工具箱,我们每次需要拧螺丝的时候都要从工具箱里面取出一个螺丝刀来。有时候需要取出一个来拧,有时候螺丝多的时候需要多个人取出多个来拧,拧完自己的螺丝那么就会把螺丝刀再放回去,然后别人下次用的时候再取出来用。 说白了线程池就是相当于
阅读全文
摘要:一、将调试信息输出到屏幕中 1.1 一般写法 我们平常在写代码时,肯定会有一些调试信息的输出: #include <stdio.h> #include <stdlib.h> int main() { char szFileName[] = "test.txt"; FILE *fp = fopen(s
阅读全文
摘要:# define 的神奇操作 一、宏定义中的 #、## 符号的神奇用法 1.1 # 的用法 1.1.1 作用 #表示字符串化操作符(stringification),其作用是将宏定义中的传入参数名转换成用双引号括起来的参数名字符串。 现在对这句话是不是还不甚理解,没关系,让我们接着往下走。 1.1.
阅读全文
摘要:cJson 学习笔记 一、前言 思考这么一个问题:对于不同的设备如何进行数据交换?可以考虑使用轻量级别的 JSON 格式。 那么需要我们手写一个 JSON 解析器吗?这大可不必,因为已经有前辈提供了开源的轻量级的 JSON 解析器——cJSON。我们会用就可以了,当然你也可以深入源码进行学习。 下图
阅读全文
摘要:vim 学习总结 一、介绍 vi 编辑器是所有 Unix 及 Linux 系统下标准的编辑器,类似于 Windows 系统下的 notepad(记事本)编辑器。在 Unix 及 Linux 系统的任何版本,vi 编辑器都是完全相同的。 vi 和 vim 都是 Linux 中的编辑器。不同的是,vim
阅读全文
摘要:GCC 指令详解及动态库、静态库的使用 一、GCC 1.1 GCC 介绍 GCC 是 Linux 下的编译工具集,是「GNU Compiler Collection」的缩写,包含 gcc、g++ 等编译器。这个工具集不仅包含编译器,还包含其他工具集,例如 ar、nm 等。 GCC 工具集不仅能编译
阅读全文
摘要:Socket 编程 一、前行必备 1.1 网络中进程之间如何通信 网络进程间的通信,首要解决的问题是如何唯一标识一个进程,否则通信无从谈起! 在本地可以通过进程 PID 来唯一标识一个进程,但是在网络中这是行不通的。其实 TCP/IP 协议族已经帮我们解决了这个问题,网络层的「IP 地址」可以唯一标
阅读全文
摘要:pthread_mutex_t & pthread_cond_t 总结 一、多线程并发 1.1 多线程并发引起的问题 我们先来看如下代码: #include <stdio.h> #include <pthread.h> #include <unistd.h> #define MAX 1E7 int
阅读全文
摘要:C 语言字符串操作总结 一、字符串操作 size_t 是一个无符号整型。 1.1 strcpy **函数原型:**char *strcpy(char *dest, const char *src)。 **功 能:**把 src 所指向的字符串复制到 dest 中。 **返 回 值:**该函数返回一个
阅读全文
摘要:回调函数 一、什么是回调函数 先看看来自 Stack Overflow 某位大神简洁明了的表述:A "callback" is any function that is called by another function which takes the first function as a pa
阅读全文
摘要:初始多线程 一、基本概念 1.1 应用程序 以 Windows 为例,一个拓展名为 .exe 的文件就是一个应用程序,应用程序是能够双击运行的。 1.2 进程 应用程序运行起来就创建了一个进程,即进程就是运行起来的应用程序;如电脑上运行的 Edge、Typora、PotPlayer 等。 进程的特点
阅读全文
摘要:如何在Windows下运行Linux程序 一、搭建 Linux 环境 1.1 安装 VMware Workstation https://www.aliyundrive.com/s/TvuMyFdTseh 1.2 下载 CentOS 映像文件 阿里云站点:http://mirrors.aliyun.
阅读全文
摘要:一、前言 如今的通讯方式已经趋向与多样化,异构通信也已经很普遍了,如手机和电脑中的 QQ 进行互联互通。 同时,在计算机设计之初,对内存中数据的处理也有不同的方式(如「低位数据存储在低位地址处」或者「高位数据存储在低位地址处」);然而,在通信的过程中,数据被一步步封装,当传到目的地址时,再被一步步解
阅读全文