
C
文章平均质量分 63
Love丶伊卡洛斯
万事皆有可能
展开
-
Linux下 基于Boa的应用资源管理小系统 SMS
前言相比大家已经看过我之前写的 嵌入式web服务器BOA+CGI+HTML+MySQL项目实战——Linux,因为当时也是刚接触,所以其实里面写的比较乱,现在打算直接上一个清爽点的小系统,以方便学习参考。(当然,这个小系统还有很多设计不合理,不安全的地方,所以大家就当个学习例程就好)操作系统:CentOS7 (ubuntu的话 需要自行适配一下)使用的技术和工具等:CHTML/CSS/JavaScriptAjaxsqlite3CGIjQuerybootstrapecharts.js原创 2021-12-10 09:47:45 · 2801 阅读 · 7 评论 -
C语言实现 修改文件的创建时间,上一次访问的时间,最近一次修改的时间
前言由于看到一篇回答提到文件打开可能被发现的问题,所以有了本篇文章,用于解决t看文件后,修改文件访问时间等信息,达到不被发现的目的。那么话不多说,直接开始。参考文章:Windows核心编程-CreateFile详解Windows API(C语言)修改文件时间程序(创建时间、修改时间、访问时间)工程下载码云 github效果图以管理员权限运行exe程序,输入文件绝对或相对路径,输入各个时间,回车即可。代码change_file_time.c编译直接gcc完事#include <原创 2021-07-14 10:56:06 · 2699 阅读 · 0 评论 -
C语言实现 十进制或十六进制字符 字典生成程序
没啥好说的 上程序,目前只写了1 2 3 12位字典生成,如需其他位数,可以自行补充。#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){ // 密码字符数组 char str[17] = "0123456789ABCDEF"; // char str[11] = "0123456789"; // printf("len=%d\n", strlen原创 2021-04-22 14:49:04 · 531 阅读 · 6 评论 -
STM32F103 实现 简易闹钟小程序
前言开发板:正点原子 STM32F103 精英版语言:C语言开发环境:Keil5使用了 KEY LED LCD RTC FLASH(用于存储闹钟信息) BEEP(充当闹铃)代码下载:码云 GitHub代码参考:正点原子 源码RTC实验例程功能介绍:1、LCD 显示当前时间和闹钟设定的时间 以及 停止闹钟的提示语。2、按KEY0进入修改模式,分别可以对当前时间的时分秒和闹钟时间的时分进行修改(处于修改下的值会变红),最后退出修改模式。3、在修改模式下:KEY1表示数值 +1,KEY_UP原创 2021-04-13 14:01:55 · 15469 阅读 · 59 评论 -
windows/Linux 收发STM32串口数据 简单demo
1原创 2021-04-07 15:13:03 · 899 阅读 · 4 评论 -
C语言 判断 点(坐标)是否在多边形内
前言原版JS代码参考:面试题:用js检测两个线段是否相交代码魔改为C语言后如下:#include <stdio.h>#include <stdlib.h>//计算向量叉乘float crossMul(float* v1, float* v2){ return v1[0] * v2[1] - v1[1] * v2[0];}// 判断两条线段是否相交 float checkCross(float* p1, float* p2, float* p3, fl原创 2021-03-19 11:07:33 · 1248 阅读 · 1 评论 -
windows下用gcc编译socket程序
程序参考 Visual Studio 2019 C++实现socket通信,添加ws2_32.lib库,新手代码我这做了微调 client.c编译 gcc client.c -lwsock32 -o client,追加 -lwsock32#include <stdio.h>#include <WinSock2.h>#pragma comment(lib,"ws2_32.lib")int main(int argv, char* argc[]){ //初始化 WS原创 2021-03-12 09:53:16 · 2573 阅读 · 2 评论 -
C语言实现通过IP和子网掩码计算网络号
想找个现成的直接用都找不到,只好自己写了直接上码1.c// 编译 gcc 1.c#include <stdio.h>#include <string.h>#include <stdlib.h>// 通过IP地址和子网掩码计算网络号,传入正确的ip,正确的netmask,网络号,网络号长度。 成功返回1,失败返回0int ip_netmask_to_NSID(char* ip, char* netmask, char* NSID, int size){原创 2021-01-14 14:38:01 · 3548 阅读 · 0 评论 -
使用cJSON对json串进行读取解析和构建写入操作
前言操作系统:CentOS7语言:C语言cJSON地址:https://github.com/DaveGamble/cJSON编译:gcc main.c cJSON.c -lm文件构建:data.json{ "admin": { "username": "admin", "password": "123456", "type": 0,原创 2020-12-29 14:50:11 · 1634 阅读 · 0 评论 -
CentOS7下C语言针对MySQL的blob类型数据插入操作(mysql_stmt_prepare、mysql_stmt_execute)
前言操作系统:CentOS7MySQL版本:5.7数据库:test建库语句参考:create DATABASE test;表:test建表语句参考:create table test( username char(20) not null, password blob not null, age int not null);代码编译:gcc mysql.c -lmysqlclient -L/usr/lib64/mysql/#include <stdio.h>原创 2020-12-23 14:46:00 · 793 阅读 · 0 评论 -
C/C++判断字符串是否是非负整数,是否是int型
直接上码#include <stdio.h>#include <stdlib.h>#include <string.h>// 判断字符串是否是int类型 是返回1 不是返回0int is_int(char *str);// 判断一个字符串是为非负整数 正确返回数字长度, 错误返回0int is_nonnegative_int(char* str);int main(){ int ret = 0; if(ret = is_nonnegative_i原创 2020-11-23 15:24:54 · 2006 阅读 · 0 评论 -
C语言实现计算 2到x 的素数和
直接上代码:#include <stdio.h>// 判断素数的函数int isprime(int i);void main(){ // 上限的值 int max = 1024; // 存储计算结果 int sum = 0; int i = 2; for(; i <= max; i++) { // 是素数就进行求和 if(1 == isprime(i)) {原创 2020-10-23 12:42:33 · 379 阅读 · 0 评论 -
sqlite3.h的常用宏定义,错误代码(SQLITE_OK、SQLITE_BUSY等)
许多SQLite函数从这里显示的集合中返回一个整数结果代码,以指示成功或失败。/*** CAPI3REF: Result Codes** KEYWORDS: SQLITE_OK {error code} {error codes}** KEYWORDS: {result code} {result codes}**** Many SQLite functions return an integer result code from the set shown** here in order t原创 2020-06-30 14:59:26 · 3082 阅读 · 2 评论 -
Linux下 C语言获取硬盘,CPU,内存使用率
#include <sys/vfs.h> /* 或者 <sys/statfs.h> */int statfs(const char *path, struct statfs *buf);int fstatfs(int fd, struct statfs *buf);参数:path: 位于需要查询信息的文件系统的文件路径名(不是设备名,是挂载点名称)。fd: ...原创 2020-03-25 17:01:00 · 3102 阅读 · 0 评论 -
纯C配合Wget编写多平台粉丝数量实时统计程序,b站 博客等
视频讲解 视频如上 视频讲解:传送门灵感来源:av84354171代码下载:github:https://github.com/Ikaros-521/using-C-to-get-user-s-fans码云:https://gitee.com/ikaros-521/us...原创 2020-02-15 14:55:43 · 625 阅读 · 3 评论 -
ONVIF 获取设备基本信息(网络摄像头)——实例笔记
相关配置ONVIF官网:http://www.onvif.org/gSOAP安装配置:gSOAP安装配置+使用案例参考+参考链接操作系统:CentOS7资料参考许振坪的ONVIF专栏:传送门大佬写的 6, 7,8三篇文章(主要针对)。设备发现参考:ONVIF 设备发现(网络摄像头)——实例笔记代码实战如何生成ONVIF框架参考:ONVIF协议网络摄像机(IPC)客户端程序开发(6...原创 2019-12-04 16:19:06 · 6057 阅读 · 17 评论 -
C语言实现socket通信TCP 程序参考
概念参考:网络通信TCP/UDP——学习笔记实现效果:先运行服务端,再运行客户端。连接完毕,客户端可以发送消息。客户端发送了 “1”,服务端收到消息并打印,此时轮到服务端发送消息。服务端发送消息“2”,客户端收到消息也进行打印,之后不断重复。补充说明:在客户端/服务端等待对方发送消息的同时,并没有限制其继续输入消息。所以会有下图的这种效果,等待过程中发送的消息会在对方发送消息后,...原创 2019-11-22 13:51:54 · 2653 阅读 · 0 评论 -
嵌入式web服务器BOA+CGI+HTML+MySQL项目实战——Linux
准备环境操作系统: Ubuntu12.04 LTS环境搭建: 需要 BOA,Apache,CCGI,MySQL,GCCLinux下嵌入式Web服务器BOA和CGI编程开发数据库的相关知识——学习笔记 的三mysql中文乱码问题解决 / C程序插入仍是乱码解决 / 卸载重装教学扩展: 我还用了bootstrap框架,CSS/JS使用方法环境准备好后,我们在 /var/www 下写HT...原创 2019-11-05 15:36:43 · 13241 阅读 · 38 评论 -
C语言基础知识(二)——学习笔记
指针:什么是指针:指针是一种数据类型(无符号整数,代表内存编号),使用它定义指针变量。 0~4G(32个1)4294967295 byte什么情况下使用指针: 1、函数之间共享变量(全局变量有命名冲突,不会被释放,浪费内存) 2、优化传递效率 因为C语言采用的是值传递(内存拷贝),会随着变量字节数的增加而降低运行效率。 而传递变量的地址,永远只拷贝4|8字节。 void fu...原创 2019-08-17 21:41:43 · 305 阅读 · 0 评论 -
C语言基础知识(一)——学习笔记
C语言关键字:unsigned signed bool void char short int long double float struct enum union typedef sizeofif else for switch case default while do break continue gotoextern register volatile auto const sta...原创 2019-08-17 21:39:50 · 391 阅读 · 1 评论 -
C/C++、Qt4实现FTP客户端(有无界面版)
操作系统:Ubuntu 12.04 LTS开发工具:GNU4.6.3,C/C++标准库,Qt4,Qt Creator Documentation 2.4.1码云:传送门,GitHub:传送门相关知识点参考:网络通信TCP/UDP——学习笔记,Qt相关知识(二)——学习笔记C语言无界面版本:直接上效果接下来操作和ftp基本操作一致我一共分了3个文件我们简单...原创 2019-09-10 16:38:57 · 2594 阅读 · 6 评论 -
网络通信TCP/UDP——学习笔记
一、网络通信的基本概念1、TCP和UDP的区别 TCP(Transmission Control Protocol):传输控制协议,面向连接的服务(类似打电话),安全、可靠(三次握手、响应+重传、四次挥手),速度相对较慢,一般应用在对安全性、完整性有严格要求的场景:文件传输(ftp)、SMTP、HTTP 三次握手: A要知道,A能到B,B能到A...原创 2019-08-09 09:35:09 · 738 阅读 · 5 评论 -
pat乙级1091 N-自守数 (15 分)C
#include <stdio.h>#include <stdlib.h>int main(){ int m; scanf("%d",&m); int k[m],K[m]; int i=0,n=0,j=0; for(i=0;i<m;i++) { scanf("%d",&k[...原创 2019-02-18 17:01:57 · 386 阅读 · 0 评论 -
数据结构之图——学习笔记
图:元素之间存在多对多关系(线性表的元素之间存在前驱和后继,树的元素之间存在父子关系,图的任意元素之间都有可能存在关系)。 由顶点的有穷非空集合和顶点之间边的集合组成。 在图型数据结构中,数据被称为顶点,数据之间的关系补称为边。 在图中不允许出现没有点,但可以没有边。 G(V,E),V表示顶点,E表示边的集合。各种图的定义: 无向图:顶点与顶点之间没有方...原创 2019-08-17 21:49:01 · 451 阅读 · 0 评论 -
Linux下互斥与死锁相关知识——学习笔记
一、同步、竞争、互斥当多个线程同时访问其共享的资源时,需要相互协调,以防止出现数据不一致、不完整的问题,能达到这种状态叫线程同步。而有些资源在同一时刻只有一个线程访问,对于这种资源的访问需要竞争。当资源获取到后,能够防止资源被其他线程抢占(再次获取)的技术叫互斥。二、互斥量(锁)pthread_mutex_t mutex = PTHREAD_MUTEX_INITALIZE...原创 2019-08-11 15:09:25 · 388 阅读 · 1 评论 -
C语言实现-航空订票系统(飞机订票系统)单机版&联网版
操作系统:Windows下运行。如果需要在Linux运行,则需要修改删除conio.h,自己写个头文件获取键盘输入。我已经写好了getch.h文件,需要将其导入使用。开发环境:CodeBlocks开发语言:C实现功能:登录,订票,退票数据存储:文本读写涉及文件:相关文件下载:码云:传送门 GitHub:传送门相关图片(仅供参考):程序是没有涉及旅行社的ER...原创 2020-07-18 13:45:24 · 24778 阅读 · 31 评论 -
C语言实现—学生成绩管理系统
开发环境:Linux(ps:已新增Windows版)开发语言:C相关文件下载:码云:传送门 GitHub:传送门程序主界面:登录“管理员子系统”登录“教师子系统”登录“学生子系统”相关功能:参考码云中的文档/********************************************************************...原创 2019-07-13 11:58:01 · 12812 阅读 · 20 评论 -
pat乙级 1072 开学寄语 (20 分)C
#include <stdio.h>#include <stdlib.h>int main(){ int n,m,k; //学生人数/需要被查缴的物品种类数/个人物品数量 scanf("%d%d",&n,&m); int capture[m]; //需要被查缴的物品种类数 char name[n][4];...原创 2019-03-03 15:40:57 · 294 阅读 · 0 评论 -
PAT 乙级 1069 微博转发抽奖 (20 分) C
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ int m,n,s; //转发的总量、小明决定的中奖间隔、以及第一位中奖者的序号 scanf("%d %d %d",&m,&n,&s); int i,j; ...原创 2019-03-08 16:03:30 · 293 阅读 · 0 评论 -
pat乙级1092 最好吃的月饼 (20 分)C
#include <stdio.h>#include <stdlib.h>int main(){ int n,m; scanf("%d%d",&n,&m); int food[m][n]; //各个月饼的销量 int sum[n]; //总销量 int back[n]; //备份 int i=0...原创 2019-02-18 18:15:30 · 335 阅读 · 0 评论 -
pat乙级1088 三人行 (20 分)C
#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){ int M,X,Y; scanf("%d%d%d",&M,&X,&Y); int j,y; double b; //丙是个陷阱 int i=0; ...原创 2019-02-18 16:12:35 · 296 阅读 · 0 评论 -
pat乙级1087 有多少不同的值 (20 分)C
#include <stdio.h>#include <stdlib.h>int main(){ int N; scanf("%d",&N); int i=1; int num=0; int box[N]; //存储不重复值 int count=0; //记录不重复值的个数 for(i=1;i<...原创 2019-02-18 15:11:57 · 295 阅读 · 0 评论 -
pat乙级1086 就不告诉你 C
#include <stdio.h>#include <stdlib.h>int main(){ int A=0,B=0; scanf("%d%d",&A,&B); int C=0; C=A*B; int result[10]; int count=0; while(C!=0) { ...原创 2019-02-02 21:21:12 · 271 阅读 · 0 评论 -
pat乙级1076 Wifi密码 C
#include <stdio.h>#include <stdlib.h>int main(){ int N; scanf("%d",&N); char line[20]={}; char key[N]; int i,j; for(i=0;i<=N;i++) { gets(lin...原创 2019-02-02 20:58:35 · 362 阅读 · 0 评论 -
PAT 1071 小赌怡情 (15 分)C语言
#include <stdio.h>#include <stdlib.h>int main(){ int T=0,K=0,i=0; int n1=0,b=0,t=0,n2=0; scanf("%d%d",&T,&K); int x = T; //初始筹码 for(; i<K; i++) { ...原创 2018-11-27 22:56:27 · 863 阅读 · 0 评论 -
linux 下用C实现 银行小系统 (进程间通信)—— ATM
项目需求:主要分为两人大模块: 客户端 1、进入时的功能开户、销户、登录、解锁 开户:输入姓名、身份证号、设置密码,如果开户成功,则服务器上保存一个账号信号(一个账号存一个文件,文件名建议是账号)。 销户:输入帐号、密码,服务器询问是否确认销户,如果确认则服务器删除帐号文件,并记录帐号。(我没实现) 登录:输入账号、密码,三次错误账号锁定。 解锁:输入账号、...原创 2019-08-02 18:59:31 · 1584 阅读 · 6 评论 -
算法之排序——学习笔记
排序 排序算法的稳定性:当序列中有相同的数据量,算法会不会改变这两个数据的前后位置。 冒泡排序:是一种稳定排序,在排序过程中可以监测到数据是否已经有序,可以立既停止,如果待排序的数据基本有序,则冒泡的效率是非常高的。相关参考:百度百科 插入排序:当一列已经有序,再有加入的数据时,适合使用插入排序。相关参考:百度百科 选择排序:是冒泡排序的一种变种,但是它没有冒泡对数...原创 2019-07-22 10:38:06 · 208 阅读 · 0 评论 -
Linux下C语言实现TCP文件传输
开发环境:Linux,GCC功能介绍:客户端和服务端的TCP文件传输,客户端可以上传文件到服务端,也可以从服务端下载文件,还可以查看和修改服务端的工作目录(临时)。码云:传送门 GitHub:传送门效果图参考页尾,那么话不多说,直接上码(只有部分,完整请访问码云)服务端:server.c#include <stdio.h>#include <stdl...原创 2019-08-10 23:01:56 · 8271 阅读 · 27 评论 -
C++基础知识(二)——学习笔记
十、函数重载(重载、隐藏、重写)1、函数重载在同一作用域下,函数名相同,参数列表不同的函数,构成重载关系。2、重载实现的机制C++代码在编译时会把函数的参数类型添加到参数名中,借助这个方式来实现函数重载,也就是C++的函数在编译期间经历换名的过程。因此,C++代码不能调用C函数(C语言编译器编译出的函数)3、extern “C” {}告诉C++编译器按照C语言的方式声明函数,这样C+...原创 2019-08-14 19:40:36 · 260 阅读 · 0 评论 -
Linux下的系统调用和文件操作——学习笔记
一、系统调用UNIX/Linux系统绝大部分功能都是通过系统调用实现,比如:open/close…UNIX/Linux把系统调用都封装成了C函数的形式,但他们不是标准C的一部分。标准库中的函数绝大部分时间都工作在用户态,但部分时间也需要切换到内核(进行了系统调用),比如:malloc/free/fread/fwirte/malloc/free。我们自己所编写的代码也可以直接调用系统接口进入...原创 2019-08-07 11:16:35 · 356 阅读 · 0 评论