![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
温柔如酒
这个作者很懒,什么都没留下…
展开
-
无网络升级linux内核版本简单步骤及选择内核版本启动
linux内核编译及升级选择原创 2022-10-21 10:02:57 · 684 阅读 · 0 评论 -
原始套接字指定网口发包
原始套接字指定网口发包原创 2022-10-12 16:27:04 · 131 阅读 · 0 评论 -
搭建samba共享
linux搭建samba共享原创 2022-10-09 18:51:34 · 109 阅读 · 0 评论 -
C语言字符串效验是IPV4还是IPV6
字符串效验IP正确性原创 2022-07-25 09:34:35 · 623 阅读 · 0 评论 -
LINUX内核中的INIT_LIST_HEAD,list_add_tail,list_for_each_entry详解
linux内核中的循环双链表的使用示例原创 2022-07-22 11:05:12 · 4166 阅读 · 0 评论 -
驱动开发(万金油创建字符设备my_cdev并初始化)
结构体cdev如何使用原创 2022-06-15 15:04:21 · 110 阅读 · 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 评论 -
ubuntu 20.04.1 普通用户执行root权限程序,通过代码配置静态IP
系统环境 :Ubuntu 20.04.1使用环境: 比如公司发给用户的机器,不能给用户root密码,用户就修改不了IP,所以需要做一个程序能修改IPeuid概念 :当进程执行时,操作系统会对euid进行识别,以此判断用什么权限来执行这个进程。1.确定要修改的网卡名(该图片是网上找的)2.查看网卡配置文件: cat /etc/netplan/*.yaml 每台机器yaml文件名不一样,需要自己确定配置静态IP要修改该文件的内容network: version: 2 renderer:原创 2022-03-26 15:06:30 · 4207 阅读 · 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 评论 -
ubuntu创建普通用户,删除用户,修改用户密码,修改用户名
创建用户名为 user 的用户1.进入root权限账号su2.添加普通用户名useradd user3.设置普通用户密码passwd user4.修改用户登入后所使用的shellusermod -s /bin/bash user5.设置家目录usermod -d /home/user user6.创建家目录目录mkdir /home/user7.改变目录拥有者和组chown -R user:user /home/user...原创 2022-01-07 15:27:51 · 4589 阅读 · 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 评论 -
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 评论