Loading

随笔分类 -  C

摘要:## 一、问题引入 [UNIX网络编程:socket & fork()多进程 实现clients/server通信]() 随笔介绍了通过fork()多进程实现了服务器与多客户端通信。但除了多进程能实现之外,多线程也是一种实现方式。 重要的是,多进程和多线程是涉及操作系统层次。随笔不仅要利用pthre 阅读全文
posted @ 2023-05-19 10:05 eiSouthBoy 阅读(331) 评论(0) 推荐(0)
摘要:## 一、问题引入 [UNIX网络编程:socket实现client/server通信](https://i.cnblogs.com/posts/edit;postId=17356425) 随笔简单介绍了TCP Server服务单客户端的socket通信,但是并未涉及多客户端通信。 对于网络编程肯定 阅读全文
posted @ 2023-05-16 17:21 eiSouthBoy 阅读(376) 评论(0) 推荐(0)
摘要:## 一、问题引入 阅读**UNIX网络编程 卷1:套接字联网API 第3版**的前4个章节,觉得有必要对书籍上的源码案例进行复现,并推敲TCP的C/S通信过程。 ## 二、解决过程 ### 2-1 server 代码 ```c #include #include #include #include 阅读全文
posted @ 2023-05-11 11:30 eiSouthBoy 阅读(305) 评论(0) 推荐(1)
摘要:## 一、问题引入 想分析http开源程序 **Tinyhttpd** ,首先应复现http server 和 client 之间的请求和相应 开源仓库地址:`https://github.com/EZLippi/Tinyhttpd.git` ## 二、解决过程 - **git 项目** ``` g 阅读全文
posted @ 2023-04-26 17:51 eiSouthBoy 阅读(155) 评论(0) 推荐(0)
摘要:一、问题引入 在处理文件过程中,一般流程是:open file --> read file to buffer --> parse buffer --> close file 文件处理单元是一行,故需要将 buffer 内容按行解析,本文就是说明这个问题。 二、解决过程 #include <stdi 阅读全文
posted @ 2023-04-26 10:41 eiSouthBoy 阅读(83) 评论(0) 推荐(0)
摘要:一、问题引入 编写了一个C程序,编译报错,故面板栏的出现错误提示。想着直接删除源文件,错误提示就没有了,但实际并不是,它还在这。 那么如何将这个错误提示弄没呢? 二、解决过程 于是又创建了和之前同名源文件,并编程简单无问题的 printf("hello world\n"); 代码,然后编译运行,这时 阅读全文
posted @ 2023-04-26 10:41 eiSouthBoy 阅读(136) 评论(0) 推荐(0)
摘要:一、问题引入 在使用VSCode编写C++程序过程中,自定义一个 *.h 文件,其中包含了函数声明,在主函数中引入头文件后,调用头文件对应C++文件中的方法,出现了undefined reference问题 二、解决过程 分析问题:主要是 预处理时,编译器没有找到stock.cpp的位置,导致 un 阅读全文
posted @ 2023-04-13 13:54 eiSouthBoy 阅读(428) 评论(0) 推荐(0)
摘要:使用 sprintf() 、printf() 拼接字符串,但是由于字符过多,一行显示全部内容会影响阅读,需要进行跨行拼接。 #include <stdio.h> int main(void) { char str[300] = {0}; // 方式一 sprintf(str, "{\"s_id\": 阅读全文
posted @ 2023-03-28 14:58 eiSouthBoy 阅读(54) 评论(0) 推荐(0)
摘要:## 一维数组 在 写程序的时候,经常会看到数组首地址和数组第一个元素的地址值相同,那么它们又什么区别呢? 这里还是以程序举例: ```c #include int main(void) { char book[50] = {"C Primer Plus"}; printf("book的首地址:%p 阅读全文
posted @ 2023-03-22 16:45 eiSouthBoy 阅读(547) 评论(0) 推荐(0)
摘要:一、问题引入 数据通信和数据存储的格式是多种多样的,不同的人会选择不同的数据格式,这就涉及数据格式的转换。 csv格式的文件在数据通信和存储使用较多,有必要记录一下csv格式文件的读写。 二、解决过程 编写程序的一个重要原则:切记不要重复造轮子。 查询到处理csv格式文件的开源库:libcsv 关于 阅读全文
posted @ 2023-03-16 10:28 eiSouthBoy 阅读(1623) 评论(0) 推荐(0)
摘要:一、问题引入 初入编程世界,我们不知道什么叫做好代码。一切以实现功能和快速上线项目为主,但编程经验增加,发现代码越来越难写,越来越难改。 导致这样的原因是没有遵循一般性的编程规则或则没有良好的编程风格。俗话说:“无规矩不成方圆”,在编程水平上来后,就更应该遵循规则。 💡 傻瓜都能写出计算机可以理解 阅读全文
posted @ 2023-03-14 09:49 eiSouthBoy 阅读(407) 评论(2) 推荐(2)
摘要:一、问题引入 在写程序过程中,一般都是直接写 xx.h 和 xx.c 文件。基本上依靠这两个文件就可以完成一个简单的小项目,但是一旦构建一个大项目就会产生很多文件。这时一部分基础文件是不需要修改的,应该将其编译为库文件(windows系统中静态库文件 xx.lib、linux系统中静态库文件 xx. 阅读全文
posted @ 2023-03-10 14:39 eiSouthBoy 阅读(1115) 评论(0) 推荐(1)
摘要:## 一、问题引入 在使用C语言编程时,一旦涉及到指针数组和数组指针就会陷入困惑。 * 如何区分指针数组和数组指针的定义形式 * 在某个场景下,应该使用指针数组,还是使用数组指针 * 指针数组和数组指针如何作为参数传递 ## 二、解决过程 ### 2-1 指针数组 指针数组是一个数组,每个数组元素存 阅读全文
posted @ 2023-01-31 10:14 eiSouthBoy 阅读(1072) 评论(0) 推荐(0)
摘要:一、前言 我们知道普通变量作为参数传入函数是无法修改变量的值,如下示例就是典型的 void swap(int x, int y) { int temp = x; x = y; y = temp; } 解决方案:传入变量的指针(即地址),指针间接访问修改变量的值 void swap(int *x, i 阅读全文
posted @ 2023-01-06 15:14 eiSouthBoy 阅读(51) 评论(0) 推荐(0)
摘要:一、前言 在写程序时,常常会用到系统时间,如果利用好 ANSI C 基本的库(time.h),输出格式为:YYYY-MM-DD HH:MM:SS 的字符串呢? 若将这个功能写成函数,可以提高代码的复用率。 二、获取系统时间 实现代码: #include <stdio.h> #include <tim 阅读全文
posted @ 2022-12-14 14:59 eiSouthBoy 阅读(585) 评论(0) 推荐(0)
摘要:## 前言 在C语言中,const配合指针使用是常有的。但使用的时候很容易出错,所以记录必须弄清楚原理性的东西。所以记录一下学习过程... ## 一、const的限定 **指针是const** 表示一旦得到了某一个变量的地址,不能再指向其他变量。换句话说:这个指针是一个常量,而常量是不能变的。 举例 阅读全文
posted @ 2022-12-12 15:37 eiSouthBoy 阅读(137) 评论(0) 推荐(0)
摘要:一、问题引入 有一批数据以json格式进行存储,如今要分析数据,那么第一步要读取数据中的json。 json作为比较流行和通用的数据存储和传输的格式,一般都会有通用的开源库,切记盲目的重复造轮子。 经过一番查询,找了一个cJSON库,cJSON库是使用C语言编写的开源库,主要功能是处理json。 二 阅读全文
posted @ 2022-12-03 17:28 eiSouthBoy 阅读(2369) 评论(0) 推荐(0)
摘要:一、问题引入 在使用不背单词记单词时,发现它缺少了取词的功能,而我平时都是使用欧陆词典取词和查找单词。 这时,我想将平时提取的生词本上传到不背单词的生词本,这样就可以把陌生单词加入复习计划,然而它所支持上传的文件和格式是限制的。不能直接将 欧陆词典 导出的文件直接导入到 不背单词,需要将文件内容格式 阅读全文
posted @ 2022-11-27 09:48 eiSouthBoy 阅读(1379) 评论(3) 推荐(0)
摘要:命令行参数的实现(C语言) 一、引入 我们在使用可执行程序的时候,经常会加入一些可选旗标,以实现精确的目标结果。 例如:在windows环境下运行ping -t www.baidu.com,其中-t就是可选旗标,通过命令行参数传入可执行程序 二、验证 #include <stdio.h> int m 阅读全文
posted @ 2022-09-11 13:24 eiSouthBoy 阅读(497) 评论(0) 推荐(0)
摘要:Visual Studio Code创建C语言编译环境 一、下载并安装Visual Studio Code Visual Studio Code介绍 Visual Studio Code(简称“VS Code” )是Microsoft在2015年4月30日Build开发者大会上正式宣布一个运行于 M 阅读全文
posted @ 2022-04-22 17:35 eiSouthBoy 阅读(1892) 评论(0) 推荐(0)