![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C 语言
文章平均质量分 68
杰儿__er
不努力一下,怎么知道什么叫绝望!哈哈哈
展开
-
c从sqlite3数据库中获取数据,并对数据进行拼接
c从sqlite3数据库中获取数据,并对数据进行拼接函数功能对数据库的操作创建数据库:创建USER表:创建表内数据:查看表内数据:查看表结构:函数功能数据库内的表:USER获取数据的命令:select id,name,pass from USER where name = ‘user_one’获取到的数据:拼接后的格式:对数据库的操作创建数据库: [root@localhost database]# sqlite3 user.db创建USER表: sqlite> CR原创 2021-03-10 00:47:26 · 1921 阅读 · 2 评论 -
c拆分字符串,并按照指定格式存入结构体数组
c将字符串拆分,并按照指定格式存入结构体数组函数功能代码实现结果显示函数功能字符串格式:username1,password1;username2,password2;结构体格式:typedef struct{ char acUserName[120]; char acPassword[120];}NODE_S;最终将`username1、password1、username2、password2存入到结构体数组NODE_S[2]中代码实现#include <stdio.h>原创 2021-03-09 23:58:00 · 991 阅读 · 0 评论 -
c将字符串拆分,并存入结构体
c将字符串拆分,并存入结构体函数功能代码实现结果显示函数功能字符串格式:type=0&u=user1&p=pass1结构体格式:typedef struct{ unsigned int len; char *data;}STRING_S;最终将0、user1、pass1存入到结构体STRING_S中代码实现#include <stdio.h>#include <stdlib.h>#include <strin原创 2021-03-09 23:47:47 · 1517 阅读 · 0 评论 -
c语言:一个C文件可否调用另一个c文件中的函数
前提:a.c函数中有main()函数,且调用b.c中的b_fun()函数。演示结果:[root@localhost make]# lsa.c b.c[root@localhost make]# gcc -g a.c b.c -o main[root@localhost make]# lsa.c b.c main[root@localhost make]# ./main 这是从a.c中打印出来的消息!这是从b.c中打印出来的消息! 代码展示:[root@localho原创 2020-11-13 15:50:01 · 5404 阅读 · 0 评论 -
C语言 —— 关键字(C语言标准定义的32个关键字:auto、register、static、sizeof、signed、unsigned 、break 、 continue 、void)
C语言标准定义的32个关键字:(列出每个关键字的意义)关键字 意 义auto 声明自动变量,缺省时编译器一般默认为 autoint 声明整型变量double 声明双精度变量long 声明长整型变量char 声明字符型变量float 声明浮点型变量short 声明短整型变量signed 声明有符号类型变量unsigned 声明无符号类型变量struct 声明结构体变量uni...原创 2018-12-25 15:20:34 · 4237 阅读 · 0 评论 -
计算机原理与基础 —— C语言中的左移与右移
1、双目运算符位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。位移位运算符分为左移和右移两种,均为双目运算符。例如: 8 >> 3 (意思是8向右移动3位)第一运算对象是移位对象,第二个运算对象是所移的二进制位数。2、逻辑移位与算术移位在嵌入式开发中,移位操作是常用的一种运算。但是在进行移位运算的时候,如果没有考虑到有符号和无符号的移位...原创 2019-01-04 18:01:01 · 44284 阅读 · 9 评论 -
C语言 —— 符号(C语言的基本符号)
C 语言的基本符号就有 20 多个,每个符号可能同时具有多重含义,而且这些符号之间相互组合又使得 C 语言中的符号变得更加复杂起来。符号 名称 符号 名称 , 逗号 > 右尖括号 . 圆点 ! 感叹号 ; 分号 | 竖线 : 冒号 / 斜杠 ? 问号 \ 反斜...原创 2019-01-09 09:10:33 · 35138 阅读 · 2 评论 -
C语言 —— 运算符的优先级
C 语言的符号众多,由这些符号又组合成了各种各样的运算符。既然是运算符就一定有其特定的优先级,下表就是 C 语言运算符的优先级表: 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 ...原创 2019-01-09 10:44:48 · 619 阅读 · 0 评论 -
Linux透明代理 —— 使用iptables实现TCP透明代理(nat方式,一个客户端对应一个服务器)
目录:1、什么是透明代理?2、透明代理的作用?2.1 TCP代理服务器可以隐藏背后真正TCP服务器2.2 保护TCP服务器免受应用层以下级别的协议栈攻击2.3 TCP转址机3、socket透明代理的实现原理?4、在实现TCP代理服务器时,遵循以下几点原则5、应用背景6、关键技术?7、如何建立透明代理?7.1 Tcp透明代理实现的中心思想7.2 搭建环...原创 2019-02-22 10:58:43 · 29209 阅读 · 12 评论 -
C语言 —— 数组(数组的声明、初始化、访问)与字符串指针
1、什么是数组若将有限个类型相同的变量的集合命名,那么这个名称为数组名。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。[1]这些无序排列的同类数据元素的集合称为数组。2、声明数组数组的声明并不是声明一个个单独的变量,比如number0,bumber1……,而是声明一个数组,比如numbers,然后使用number[0],numbe...原创 2019-04-04 11:13:49 · 28520 阅读 · 2 评论 -
netstat获取本机监听的地址列表 —— *awk与splite命令实现*(sudo netstat -nl | grep tcp……)
问题描述:校验某个端口是否被使用(80端口是否被使用):1、获取本机监听的地址列表中,协议类型为tcp与tcp6的端口;(sudo netstat -nl | grep tcp | awk '{print $4}' | awk '{split($0,a,":");print a[2]a[4]}')2、将获取到的列表中的值,与要被对比的监听的值(例如80值)向比较。 代码实现:...原创 2018-11-26 10:25:10 · 672 阅读 · 0 评论 -
netstat获取本机监听的地址列表 —— *链表实现*(sudo netstat -nl | grep -w tcp | awk '{print $4}')
问题描述:获取本机监听的地址列表中,协议类型为tcp的端口。(sudo netstat -nl | grep -w tcp) 知识填充:在linux一般使用netstat 来查看系统端口使用情况步。 netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的 netstat命令的功能是显示网络...原创 2018-11-26 10:21:11 · 1274 阅读 · 0 评论 -
写文件 —— 将内容按照指定格式写入配置文件(fwrite()函数-》》向指定的文件中写入若干数据块)
例如 —— 文件中的配置内容格式如下:dat.txt的文件的内容为[root@localhost tool]# cat dat.txtaa1213bbcc1415dd参数说明size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);返回值:返回实际写入的数据块数目(1)buffer...原创 2018-11-26 10:13:56 · 1973 阅读 · 2 评论 -
写文件 —— 将内容按照指定格式写入配置文件(fprintf()函数-》》本机的监听地址列表中port值)
例如 —— 文件中的配置内容格式如下:listen的文件的内容为listen 33;listen 24;参数说明编辑int fprintf (FILE* stream, const char*format, [argument])FILE*stream:文件指针const char* format:输出格式[argument]:附加参数列表函数说明...原创 2018-11-26 10:05:44 · 490 阅读 · 0 评论 -
C 判断 —— if...else 语句(bool变量、float变量、指针变量与“零值”进行比较)(else 到底与哪个 if 配对呢? if 语句后面的分号?)
1、bool 变量与“零值”进行比较bool 变量与“零值”进行比较的 if 语句怎么写?bool bTestFlag = FALSE;//想想为什么一般初始化为 FALSE 比较好?A), if(bTestFlag == 0); if(bTestFlag == 1);B), if(bTestFlag == TRUE); if(bTestFlag == FLASE);C), if(b...原创 2018-11-07 17:15:04 · 1746 阅读 · 2 评论 -
C语言 —— 整型(int)类型数据,做函数的参数,传值与传地址
整型数据的做函数参数注意事项:如只是使用该数据,则把改值直接传递给函数,直接做函数的参数即可;若需要在函数中对该数据进行更改,则需要把改值的地址当做函数的参数,进行传递。#include <stdio.h>int Set_Value(int *i){ /*设置i的值变为1*/ *i = 1;}int Get_Value(int i){ /*...原创 2019-04-10 23:11:29 · 8355 阅读 · 0 评论 -
C语言 —— 获取字符串中两个字符之间的的数据
问题描述:获取字符串中两个字符之间的数据。最近写SMTP代理,需要获取发送方与接收方的邮件名称。字符串为 “MAIL FROM:<test1@163.com>\r\n” , 获取字符':'冒号和字符'\r'之间的值 <test1@163.com>/*C获取字符串中两个字符之间的的数据*/#include <stdio.h>#include <...原创 2019-04-10 23:25:22 · 15221 阅读 · 3 评论 -
Socket编程(C语言实现)—— 为什么流式传输类似于管道?不区分边界?
1、管道实现:(1)代码实现:[root@localhost pipe]# cat pipe.c#include <stdio.h>#include <unistd.h>int main(void){ int i = 0; int aiPipe[2] = {0}; pid_t stPid = {0}; char acSendBuf[2] = {...原创 2019-07-21 23:38:51 · 693 阅读 · 0 评论 -
Socket编程(C语言实现)—— AF_INET(典型的TCP/IP四层模型的通信过程),AF_UNIX(本地进程间通信)
1、AF_INET域与Socket通信 其是典型的TCP/IP四层模型的通信过程。(1)接收方与发送方依赖IP和port来标识,即,将本地socket绑定到对应的IP端口上;(2)发送数据时指定对方的IP与端口,经过Internet可以根据此端口最终找到接收方;(3)接受数据时,可以从数据包内获取到发送方的IP和端口号。(1) 发送方通过系统调用send()将原始数据发...原创 2019-07-21 23:39:27 · 5307 阅读 · 0 评论 -
Socket编程(C语言实现)——UDP协议(进程间通信AF_UNIX)的流式(SOCK_STREAM)+报式(SOCK_DGRAM)传输【循环监听】
Socket编程目前较为流行的网络编程模型是客户机/服务器通信模式客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该请求。如图所示,通常,一个服务器进程会同时为多个客户端进程服务,图中服务器进程B1同时为客户进程A1、A2和B2提供服务。Socket概述① 所谓Socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”...原创 2019-07-17 23:24:09 · 3629 阅读 · 0 评论 -
C语言—用结构体指针给数组赋值(结构体指针指向字符串,给字符串赋值)
数组定义:char acBuf[sizeof(TRANS_HEAD_S) + sizeof(USER_HEAD_S) + 4] = {0};结构体定义: typedef struct { int iOne; int iTwo; int iThr;}TRANS_HEAD_S;typedef struct { int iUser;}USER...原创 2019-07-24 23:29:55 · 12860 阅读 · 1 评论 -
C语言——把结构体数据封装成TLV格式的数据
功能描述:typedef struct{ unsigned char ucPort; pid_t stPid;}TEST_INFO_S;结构体TETS_INFO_S内有两个变量分别是ucPort和stPid,在本文中把此结构体作为TLV的value部分,type部分为0,len为此结构体的大小。代码实现:#include <stdio.h>#in...原创 2019-07-17 22:33:10 · 1221 阅读 · 0 评论 -
C语言——四字节对齐(4对齐后是4, 5对齐后是8)
1、功能描述实现数值的,四字节对齐,若数值是4的倍数,则不变;若不是4的倍数则改变;2、结果显示如下所示:7四字节对齐后是8;8四字节对齐后是8;[root@localhost 20190613]# ./11 7iLen = 7iRecvLen = 1iLen = 8[root@localhost 20190613]# ./11 8iLen = 8iRecvLen =...原创 2019-07-23 22:45:06 · 1960 阅读 · 0 评论 -
Makefile —— 如何在文件内使用变量?
在上篇Makefile —— Makefile的规则是什么?make是如何工作的?make的工作方式是什么?文章中我们可以看到[.o]文件的字符串被重复用了三次,如果我们在工程中需要加入一个新的[.o]文件,那么我们需要在三个地方加。# 为了makefile文件易维护,我们使用变量来表示。# makefile的变量也就是一个字符串,理解成C语言中的宏会更好## 声明一个变量,obje...原创 2019-07-08 21:32:41 · 618 阅读 · 0 评论 -
Makefile —— Makefile的规则是什么?make是如何工作的?make的工作方式是什么?
#1、Makefile的规则:# target... : prerequisites...# commandtarget是:【目标文件:包含执行文件edit与中间目标文件(*.o)文件】prerequisites是: 【依赖文件:包含冒号后面那些.c文件与.h文件;edit的依赖文件是所有.o文件】command是:【命令:定义了如何生成目标文件的操作系统命令,一定要以T...原创 2019-07-08 21:07:54 · 746 阅读 · 0 评论 -
C语言——实现用链表存储学生信息,当输入0退出输入,并查找学号为3的学生是否存在
功能实现:1、往链表内录入学生的学号信息;2、当输入的学号为0时候,退出录入;3、查找链表内是否有学号为3的学生。编译执行结果:代码实现:#include <stdlib.h>#include <stdio.h>#define LEN sizeof(struct student)struct student{ int num; /...原创 2019-06-10 16:58:50 · 3801 阅读 · 0 评论 -
C实现读写文件——对文件进行读写open(),read(),write()
功能: 文件内存储一个数字,该数字初始化为0;之后取出改数字对数字加3后再次写入文件;期望结果:文件内数字初始化为0,可执行文件被执行一次,改数字变为3;执行两次,改数字变为6……结果显示:准备工作:/*创建文件,存储值*/# touch operation_log_id/*文件内的值初始化为0*/[root@localhost 20190613]# cat opera...原创 2019-06-13 22:47:10 · 6851 阅读 · 1 评论 -
Linux —— 时间问题(GMT,UTC,DST,CST,CET表示什么、UTC与CST之间的转换)
一、各个缩写的含义(GMT,UTC,DST,CST,CET):gmt:「格林威治标准时间」(Greenwich Mean Time,简称G.M.T.)utc: Coordinated Universal Time- 世界协调时间(又称世界标准时间、世界统一时间),dst:夏日节约时间」Daylight Saving Time(简称D.S.T.),cst:4个不同的时区Cen...原创 2019-05-28 21:35:47 · 11382 阅读 · 0 评论 -
Linux —— 时间问题(localtime和gmtime)
1、localtime是 把从1970-1-1零点零分到当前时间系统所偏移的秒数时间转换为本地时间;2、gmtime函数转换后的时间没有经过时区变换,是UTC时间 ;3、localtime比uct时间(即世界标准时间)慢8个小时;Linux —— 时间问题(GMT,UTC,DST,CST,CET表示什么)4、对比代码如下:#include <stdio.h>#i...原创 2019-05-28 21:31:27 · 3789 阅读 · 2 评论 -
sqlite库——C实现,给sqlite数据库添加信息并把信息写入文件,删除日志和库中的日志信息
一、功能在开机启动时候,给sqlite3数据库内,添加 ’固定’信息的运行日志; 并把日志写入[.log]文件内; 日志信息的6个字段为: 时间time、类型type、主体subject、客体object、结果result、备注remark 数据库显示为: time type subject object result ...原创 2019-05-30 23:42:06 · 1494 阅读 · 0 评论 -
C语言 —— 把字符指针中的字符串,存入字符数组中
问题描述:有一个用字符指针表示的字符串char *str = "0 12"; 有一个数组 char buf[128] = {0}; 现在需要将字符指针表示的字符串"0 12",放入到数组buf中。一、首先了解一下字符串的表示方式,即c语言中怎样定义字符串可以用数组来初始化:例如:char buf[5] = {'a','b','c'}; 或者 char buf[5] = {"abc"...原创 2019-04-09 23:51:44 · 23924 阅读 · 3 评论 -
函数 —— sprintf() 拼接字符串
描述C 库函数 int sprintf(char *str, const char *format, ...) 发送格式化输出到 str 所指向的字符串。参数str -- 这是指向一个字符数组的指针,该数组存储了 C 字符串。 format -- 这是字符串,包含了要被写入到字符串 str 的文本。它可以包含嵌入的 format 标签,format 标签可被随后的附加参数中指定的值替...原创 2018-11-02 19:03:29 · 18469 阅读 · 0 评论 -
函数 —— memset(给数组重新赋值,用指定字符替换数组中的部分值)
描述C 库函数 void *memset(void *str, int c, size_t n) 复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符。参数str -- 指向要填充的内存块。 c -- 要被设置的值。该值以 int 形式传递,但是函数在填充内存块时是使用该值的无符号字符形式。 n -- 要被设置为该值的字节数。实例1 —— 给数组重新赋值...原创 2018-11-02 16:13:22 · 2051 阅读 · 0 评论 -
结构体的嵌套 自身嵌套 相互嵌套
什么是结构体的嵌套?在结构体的定义中,结构体的成员又是另外一个结构体的变量。结构体嵌套的问题有哪些?结构体的自引用,就是在结构体内部,包含指向自身类型结构体的指针。结构体的相互引用,就是说在多个结构体中,都包含指向其他结构体的指针。结构体应该注意的问题?结构体定义中可以嵌套其他结构体类型的变量,不可以嵌套自己这个类型的变量。可以嵌套自己类型的指针。*********...原创 2018-05-16 00:01:59 · 48103 阅读 · 28 评论 -
数据结构 结构的声明 一个结构作为另一个结构的成员 单向链表的实现 双向链表的实现
*******************************什么是结构体*************************************************************************************************************************************************************#...原创 2018-05-15 23:19:33 · 376 阅读 · 0 评论 -
字符串中 去掉字符串前后空格以、'\t'(tab) C函数实现,附sscanf正则方式
一、问题描述: 当读取配置文件的时候,fgets()一行一行的读取文件后,sscanf()会对读取出来的这行字符串进行截取处理(此时sscanf()使用正则表达式处理字符串),但是当字符串的首位有空格或者‘\t’时候,后续字符串的比较时,会带来不必要的麻烦。二、举例说明:(提示:->表示开始 <-表示结尾 实际的配置文件中并不存在,只是为了更好的显示文件中有空格或者tab) ...原创 2018-05-21 00:16:12 · 4585 阅读 · 0 评论 -
函数 —— scanf() fscanf() sscanf() (分析sscanf正则表达式的用法)
int scanf(const char *format, ...); int fscanf(FILE *stream, const char *format, ...); int sscanf(const char *str, const char *format, ...);************************************...原创 2018-05-20 20:21:41 · 3429 阅读 · 2 评论 -
函数 —— strtok() 例如:Fred male 25,John male 62,Anna female 16两层循环
//char *strtok(char *str, const char *delim)/*功能: * 函数用来将字符串分割成一个个片段*//*参数: * str -- 要被分解成一组小字符串的字符串。 * delim -- 包含分隔符的 C 字符串。*//*返回值: * 该函数返回被分解的最后一个子字符串,如果没有可检索的字符串,则返回一个空指针*/#include <...原创 2018-05-20 00:30:19 · 369 阅读 · 0 评论 -
函数 —— strchr() 例如:字符串中的 192.168.1.2|00:11:22:33:44:55 取出字符串中的ip与mac值
值针对简单的字符串: 字符串内包含 大写字母、小写字母、数字。#include<stdio.h>#include<string.h>int main(){ char temp[255] = "ip sd 123 sdDe"; int i = 0; //printf("%d",strlen(temp)); ...原创 2018-05-19 20:27:57 · 597 阅读 · 0 评论 -
读文件 —— 读写配置文件
例如 —— 配置文件的格式如下:./net.conf 的文件的内容为IP=192.168.1.20 MASK=255.255.255.0 DNS=192.168.1.1(要把IP的值进行修改)#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#...原创 2018-05-18 17:20:10 · 1461 阅读 · 0 评论