c语言
cao849861802
这个作者很懒,什么都没留下…
展开
-
linux批量修改文件后缀
将.txt文件批量修改为.bat文件find ./ -name "*.txt" | awk -F "." '{print $2}' | xargs -i -t mv ./{}.txt ./{}.bat原创 2022-02-08 10:02:26 · 1263 阅读 · 0 评论 -
linux 消息队列的应用实例(代码)
msgid create/************************************************************************ 函数名 : msgIdCreate* 功能描述 : 此处执行两次是为了清空消息队列中的内容, 因为进程即使结束,消息队列中的数据仍然存在;* 输入参数 : 无* 输出参数 : 无* 返回值 : 无*/#define SEND_MSG_KEY 1024int msgIdCreate.原创 2022-01-05 13:31:52 · 720 阅读 · 0 评论 -
ubuntu core dump 调试方法
下面的“test”将指的操作的运行程序,并且所有操作最好在root模式下;1. 设置ulimit修改core的大小限制#查看大小ulimit -a#修改为不限制大小ulimit -c unlimited2. 运行程序./test查看core是否生成,一般core文件在操作的当前路径下或者查看文件/var/log/apport.log里面有记录core文件的生成路径3. 运行gdbgdb ./test ./core这里注意./test之前怎么运行的test,这里最好原创 2021-12-31 11:21:24 · 1159 阅读 · 0 评论 -
redis常用命令,HSET,XADD,XREAD,DEL等
注意:redis的命令大小写并不敏感,都可以用;连接到指定ip的redis服务器redis-cli -h 127.0.0.1添加字符串SET name value获取字符串GET name设置hash值HSET key name value获取hash值HGET key name查看hash中的所有内容HGETALL key删除hash字段HDEL key name删除hash表DEL key发布PUBLISH...原创 2021-12-24 16:18:40 · 2102 阅读 · 0 评论 -
dpkg强制安装软件
dpkg -i --force-overwrite test.deb原创 2021-12-22 17:24:22 · 7405 阅读 · 0 评论 -
linux c语言配置文件读取和写入简单实现(C代码实现读取配置文件)
configfile.c#include "stdio.h"#include "stdlib.h"#include "string.h"#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>#ifndef TRUE #define TRUE 1#endif#ifndef FALSE#define FALSE 0#endifvoid configFil.原创 2021-10-24 17:23:04 · 1444 阅读 · 0 评论 -
ubuntu 添加固定ip,或者动态获取ip
vim /etc/network/interfaces添加如下内容# interfaces(5) file used by ifup(8) and ifdown(8)auto loiface lo inet loopback auto ens33iface ens33 inet staticaddress 192.168.1.111gateway 192.168.1.1netmask 255.255.255.0gateway是网关可写可不写,注意ens33是ifconfi...原创 2021-10-24 10:32:58 · 3809 阅读 · 0 评论 -
redis ,hiredis, XREAD 使用代码实例
#include "stdio.h"#include "stdlib.h"#include "string.h"#include "hiredis.h"static redisReply *redisCliRceiveMsg(redisReply *reply){ int i = 0; redisReply *childReply = NULL; redisReply *retReply = NULL; while(reply) { if(reply->type == .原创 2021-10-20 15:48:49 · 674 阅读 · 0 评论 -
redis,hiredis,set,get,publish,subscribe使用代码实例
redisCli.c#include "stdio.h"#include "string.h"#include "stdlib.h"#include "redisCli.h"static redisContext *redisCliConn = NULL;int redisCliInit(void ){ redisCliConn = redisConnect("127.0.0.1",6379); if(redisCliConn != NULL && re原创 2021-10-15 13:46:08 · 722 阅读 · 0 评论 -
为net-snmp添加新的节点.c,添加私有节点
将修改好的mib.c文件添加到net-snmp有三种方式:直接将文件导入到snmp的源码中直接编译进去; 使用so文件动态链接到snmplib; 编译为新的可执行软件一起运行snmpd和新的软件;这里我只做了2,32的话我尝试添加其他软件的lib库的时候添加一直添加不上,所以这里只说怎么用,如果不添加其他的lib库的话,这样还是可以的,如果添加的话建议使用3的方式;方法2:创建Makefile如下:CC=gccCFLAGS := -I ../../../include/LI原创 2021-10-15 13:25:07 · 908 阅读 · 0 评论 -
net-snmp修改mib2c生成的.c文件
1.标量文件修改如果是read-only节点的话,直接将需要的值付给对应的接口;read的case为:MODE_GET需要注意所有标注XXX的地方,是修改的地方;int value;snmp_set_var_typed_value(requests->requestvb, ASN_INTEGER, /* XXX: a pointer to the scalar's data */&value, /* XXX: the length of the data in原创 2021-10-15 13:20:11 · 676 阅读 · 0 评论 -
net-snmp,mib文件构建,标量,一维表量,二维表量
mib文件的注释是“--”mib文件名:ZINFO-DEV-MIB.txt1. mib文件mib开头和结尾必须如下:ZINFO-DEV-MIB DEFINITIONS ::= BEGINEND2.mib的import:IMPORTS enterprises FROM RFC1155-SMI OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP FROM SNMPv2-CONF Integer32, Unsign原创 2021-10-15 13:11:50 · 913 阅读 · 0 评论 -
Net-snmp安装开发流程
1. 下载net-snmp包(源码)官网:Net-SNMPDownload:Net-SNMP我这里下载的是version:5.9.1,文件名:net-snmp-5.9.1.zip2. 解压net-snmp-5.9.1.zipunzip net-snmp-5.9.1.zip如果没有unzip命令则安装zip,apt-get install zip3.配置编译net-snmpcd net-snmp-5.9.1#./configure后其他选项可以直接回车#--pre原创 2021-10-15 11:29:35 · 2698 阅读 · 0 评论 -
Makefile:9: *** missing separator. Stop.
这个问题一般就是说makefile的文件中的某个位置书写格式不对,语法有误。比如上面的问题就是在第9行的位置,有可能是开头没用tab而用了空格,或者:用了汉语没有用英文之类的问题;原创 2021-10-11 11:11:16 · 741 阅读 · 0 评论 -
mib2c : You didn‘t give mib2c a valid OID to start with.解决
使用mib2c报错如下:root@ecs-435a-0002:/net-snmp/share/snmp/mibs# mib2c ZINFO-DEV-MIB:INFOYou didn't give mib2c a valid OID to start with. IE, I could not findany information about the mib node "ZINFO-DEV-MIB:INFO". This could be causedbecause you supplie原创 2021-10-11 09:03:00 · 572 阅读 · 0 评论 -
LINUX 格式输出系统时间代码
#include <stdio.h>#include <string.h>#include <time.h>int main(){ time_t timep; struct tm *tmp; time(&timep); tmp = localtime(&timep); printf("%d-%d-%d %d:%d:%d\n",1900 + tmp->tm_year,1 + tmp->tm_.原创 2021-08-25 10:34:25 · 475 阅读 · 0 评论 -
no buffer space available,errno==55,ENOBUFS解决方法
这个报错的原因是默认的Linux设置的socket的发包的skb的设置的大小太小了,而代码这边短时间操作太多的发送,然后导致内核的skb未来的及释放就会发生这个报错;参考:https://blog.csdn.net/cao849861802/article/details/117713712解决办法:1.可以通过减少报文的发送,或者延长发包的间隔的办法,让底层慢慢释放skb的空间;2.通过上层配置修改skb的可分配空间的大小,这个值默认是8 * 1024:发送socket:int si原创 2021-06-08 19:34:59 · 3349 阅读 · 0 评论 -
c语言十六进制打印结构体
使用十六进制打印结构体的时候发现每次打印都是出来八个字符,如下:typedef struct temp{ int aa; long bb;}TEMP;void printMsg(){ int i; TEMP message; char *fp = (char *)&message; for(i = 0; i < sizeof(TEMP); i++) { printf("%02x ",fp+i); }原创 2021-05-17 13:13:24 · 2223 阅读 · 0 评论 -
imx6ul can调试(代码)
下面是我的代码,然后代码呢实际的使用 需要注意,如果重新设置了can的引脚对应关系,需要重新配置设备树文件;然后注意can0SystemInit和can1SystemInit中的频率,125000,这个可以修改和从机相同的频率用来通信;can_id这个是表示can的id这个发送接收的对应要注意;#include <sys/ioctl.h>#include <fcntl.h>#include <unistd.h>#include <sys/ioc原创 2020-12-24 09:20:36 · 972 阅读 · 0 评论 -
python3,为某一路径下所以文件内容特定字段前添加特定内容,\n前添加特定字符
# encoding: utf-8import osimport redef filecontentdeal(filecontent,addi): if filecontent.find('\\n') != -1: contentsplit = filecontent.split('\\n') endlistcontent = contentsplit.pop() retcontent = '' for i in contentsplit: if (len(i) >.原创 2020-10-28 17:30:26 · 394 阅读 · 0 评论 -
c语言实现字符串转换为十进制数字
int sysMyHex10(char *buf){ char *tempbuf = buf; char *startbuf = NULL; int start = 0; int ret = 0; int i = 0; int base = 1; if(buf == NULL) return 0; while(*tempbuf != '\0') { if(((*tempbuf >= '0') && (*tempbuf <= '9')) .原创 2020-09-25 14:58:57 · 2427 阅读 · 0 评论 -
c语言 gets()函数的简单实现
int myGets(char *srcbuf,int buflen,int fp){ char buf[4] = {0}; int count = 0; if(srcbuf == NULL) return -1 while(read(fp,buf,1) > 0) { srcbuf[count++] = buf[0]; if((count >= buflen) || (buf[0] == '\n')).原创 2020-09-25 14:18:55 · 1377 阅读 · 0 评论 -
error:expected '{' at end of input
C语言报错:error:expected '{' at end of input然后后面打印一堆内容,这个问题一般是头文件里面写函数声明的时候没有加分号;原创 2020-03-13 10:20:48 · 22918 阅读 · 0 评论 -
c语言实现,一定数量一定范围内的整数相加总和相等的整数数列
实现方法采用回调函数的方式实现,模仿模型为密码破解的方法,在产生的结果中,会有一些是重复的,可以采用文件的方式去掉重复即可,这边只实现产生所以可能性的方法。代码如下:#include "stdio.h"#define NUMBER_SUM 4 //多少个相加的数#define NUMBER_MIX 48 //相加数的最小值#define NUMBER_BASE...原创 2020-03-09 16:56:50 · 585 阅读 · 0 评论 -
linux系统报错:MEMERASE:Invalid argument
由于报错打印可能有多种,我只说我这边遇到的这个问题的原因;这里报错的原因是:擦除flash的时候,要按照块来擦除,不能自己想擦多大就擦多大,如果自己随意擦除就会这样;...原创 2020-02-26 17:08:07 · 1038 阅读 · 0 评论 -
段错误的简单调试方法
段错误如果是自己书写代码的时候写出来的段错误对于比较熟悉c语言的开发者来说,自己立马能够意识到段错误位置。但是平常或者刚刚开始学习的人则不太好调试段错误;这边说一种比较笨但是好用的办法调试段错误,如果是自己写出来的,可以采用打印加延时的操作;比如:char buf[5];char dstBuf[10];memcpy(buf,dstBuf,sizeof(dstBuf));这个...原创 2019-11-19 09:52:59 · 361 阅读 · 0 评论 -
怎样退出vim或者vi
点击ESC进入“正常模式”,然后输入“:”,进入“命令模式”。此时屏幕的下方会出现一个冒号,你可以输入以下命令,并按“ENTER”执行::q,退出(:quit的缩写):q!,退出且不保存(:quit!的缩写):wq,保存并退出:wq!,保存并退出即使文件没有写入权限(强制保存退出):x,保存并退出(类似:wq,但是只有在有更改的情况下才保存):exit,保存并退出(和:x...原创 2019-10-31 09:57:09 · 396 阅读 · 0 评论