![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c
温柔如酒
这个作者很懒,什么都没留下…
展开
-
无网络升级linux内核版本简单步骤及选择内核版本启动
linux内核编译及升级选择原创 2022-10-21 10:02:57 · 684 阅读 · 0 评论 -
原始套接字指定网口发包
原始套接字指定网口发包原创 2022-10-12 16:27:04 · 131 阅读 · 0 评论 -
内核模块编译Makefile通用模板
内核模块编译Makefile通用模板原创 2022-09-19 15:01:22 · 248 阅读 · 0 评论 -
socket通信服务端实现
#include <sys/socket.h>#include<netinet/in.h>#include <arpa/inet.h>#include <string.h>#include <unistd.h>#include <stdlib.h>#include <sys/types.h>int socket_create(){ struct sockaddr_in addr; int reuse =原创 2022-03-31 17:02:36 · 253 阅读 · 0 评论 -
/etc目录下重要文件
1.*/etc/sysconfig/network-scripts/ifcfg-eth0 网卡的配置信息重启网卡:1)/etc/init.d/network restart(所有网卡)2)ifdown eth0&&ifup eht0(只针对eht0)通过steup-network configuration 修改网卡配置[root@localhost /]# cat /etc/sysconfig/network-scripts/ifcfg-eth02:/etc/resolv.co原创 2022-02-14 11:36:11 · 717 阅读 · 0 评论 -
快速找到段错误位置
这里使用gdb调试,本人其实也不怎么会gdb。就几个简单命令即可定位段错误的位置。例如, 执行程序为 ./a.out 123以上面例子为例,1.linux命令行敲入 gdb ./a.out2.如果有参数,则gdb继续敲入 set arg 1233.运行,敲入 r4.敲入 bt即可看到在哪个文件哪个函数中发生段错误 ...原创 2021-08-26 09:35:08 · 1181 阅读 · 0 评论 -
在使用libpci库时,遇到的问题
下载pci库本意是想直接链接下载的pci库,像我们调用自己写的库一样,但是ldd 发现 链接的库 是在系统路径下编译通过了,但是找不到相对应的函数。1.可能系统版本 libpci 版本过低解决方法:升级 pci库cd 到PCI库文件所在目录ll | grep pci删除相对应的软链接rm -Rf libpci.so.3可以在网站中下载新版本的pci库下载完成后 可以pci库使用教程建立新的软链接ln -s libpci.so.3.7.0 libpci.so.3...原创 2021-07-08 17:07:39 · 722 阅读 · 0 评论 -
数组解决约瑟夫环问题(容易理解)
核心思想:循环遍历数组,直至剩下只有一个不为0的元素。第一个人数组下标记作0,每个元素都有不为0的值,开始数数,数到这个人,这个人死亡,就把该下标所对应的元素的值置为0,同时剩余人数减1,一直到剩余人数为1。那么该数组内容不为0的元素就是还活着的人,数组下标加1,则为第多少个人活着。/*name: the_last_guyinput: arr death_num lenout: nonereturn i:the last guy index*/int the原创 2021-06-11 15:36:00 · 1056 阅读 · 2 评论 -
位域、联合体的使用方法
联合体定义在进行某些算法的C语言编程的时候,需要使几种不同类型的变量存放到同一段内存单元中。也就是使用覆盖技术,几个变量互相覆盖。这种几个不同的变量共同占用一段内存的结构,在C语言中,被称作“共用体”类型结构,简称共用体,也叫联合体。假如我们要一个unsigned int型 变量 0-3位 学号 4-7位 年龄 8-11位 性别 其他位代表其他信息#include <stdio.h>struct info{ unsigned int id:4,原创 2021-06-04 17:10:45 · 505 阅读 · 0 评论 -
Debug日志输出
#define DEBUG(...)\do{ \ FILE *fp = fopen("./log.txt","a+"); \ if(NULL == fp)breal; \ fprintf(fp,__VA_ARGS__);\ fclose(fp);\}while(0);DEBUG("%s = %d", "age", 100);原创 2021-05-25 17:19:47 · 574 阅读 · 2 评论 -
工作中,遇到的问题(持续更新)
1移位遇到的问题struct pci_addr{ unsigned int domain; unsigned char bus; unsigned char devid; unsigned char function;}; long addr; addr |= pci.function; addr |= pci.bus<<8; addr |= pci.devid<<16; addr |= pci.domain<<24;本来的想法是 struc原创 2021-05-24 13:39:19 · 74 阅读 · 0 评论 -
linux下使用C语言获取所有PCI设备地址并存储,即获取/sys/bus/pci/devices目录下的所有目录名称
首先,lspci可以看设备地址,但是有些机器是不显示域的。/sys/bus/pci/devices目录下有所有PCI设备地址,以目录名字存在例如“0000:02:00.0”分为4个部分,因为是字符串,如果要处理,要转成相应的16进制,因为这是16进制表示的。第一部分0000 :代表域第二部分02 :代表总线编号第三部分00 :代表设备号第四部分0 :代表功能号#include <stdio.h>#include <sys/type原创 2021-05-17 16:39:07 · 2354 阅读 · 0 评论 -
C语言中十六进制字符串处理以及分析
通过命令行传递十六进制字符串参数程序运行 ./test_main 0x12345678int main(int argc, char** argv){ unsigned char tmp; unsigned char match[64]; char *str; int i; memset(match, 0, 64) str = argv[1]; if (str[0] == '0' && str[1] == 'x') { str += 2; } for原创 2021-04-20 13:57:26 · 2804 阅读 · 2 评论