linux
潘多拉的面
这个作者很懒,什么都没留下…
展开
-
IGMP参数
OID [210:1][Entry]: [Active = Yes] [Protocal = TCP] [SrcIP = ] [STARTPORT = 9090] [INTPORT = 9090] [LOCALIP = 192.168.10.10] [MapName = DomainNameServer] tcapi show VirServer tcapi show webcurset 当选中条目的时候,virserver_id会出现在当前的wencurset中..原创 2022-04-14 10:46:46 · 848 阅读 · 0 评论 -
10Gpon
10G lan的代码:判断寄存器的状态:/userfs/bin/ethphxcmd miiw 0 13 0x7/userfs/bin/ethphxcmd miiw 0 14 0xc810/userfs/bin/ethphxcmd miiw 0 12 0x4007/userfs/bin/ethphxcmd miir 0 14/userfs/bin/ethphxcmd miiw 0 13 0x4007Autonegotiation Reserved Vendor Status 1:A..原创 2022-04-14 10:44:33 · 556 阅读 · 0 评论 -
cmake简单的使用
1、CMakeLists.txt文件夹的创立2、创建自己的hello world主函数函数3、在CMakeLists.txt中写入工程需要的条件PROJECT(hello)SET(src_list main.c)ADD_EXECUTABLE(hello ${src_list})4、执行cmake之前执行之后:ls 当前目录:可以看到已经生产了makefile文件然后执行make命令:生成对应的二进制文件...原创 2022-01-20 16:20:47 · 295 阅读 · 0 评论 -
Linux的工具使用
strings:查找二进制中的的字符串#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){ char buff[5] = {0}; snprintf(buff,sizeof(buff),"%s\n","100"); printf("the buff is %s hello",buff);}编译为二进制文件后使用命令进行搜索1、pstree:.原创 2022-01-10 20:46:13 · 451 阅读 · 0 评论 -
snprintf函数截断问题
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <strings.h>int main(){ //printf("Hello World"); char buff[12] = {0}; snprintf(buff,sizeof(buff),"%s\n","hello world"); printf("the %s an the \n..原创 2022-01-08 09:50:24 · 6139 阅读 · 0 评论 -
awk获取ifconfig下的ip
ifconfig enp3s0 | awk -F ':' '{print $2}'原创 2021-11-23 09:29:52 · 1932 阅读 · 0 评论 -
线程相关的学习
加强自己模型代码联系1、静态成员函数和静态成员变量一般类的成员函数想要作为回调函数使用,一般情况下只能将它定义为静态成员函数2、sockaddr_in结构体的打印(inet_ntoa)3、gettid和pthread_self区别4、pthread_mutex_t 和 pthread_cond_t 配合使用的简要分析5、虚函数与存虚函数6、实现线程同步的几种方式总结7、线程池的设计理念8、看下前端到后台的框架9、总结最近的任务/****************************原创 2021-11-18 14:16:53 · 186 阅读 · 0 评论 -
vi创建工程文件
打开文件后在命令行使用:e file.c的命令将文件添加进来然后使用命令:mksession! test.vim 将文件保存为test.vim的工程文件,在此打开工程文件使用vi -S test.vim文件间的跳转使用命令:b file.c来完成删除文件使用:bd命令1、vim file.c2、添加文件3、保存文件...原创 2021-11-17 15:30:55 · 504 阅读 · 0 评论 -
setitimer函数
setitimer()函数alarm函数会建立一个定时器,在seconds秒后,给当前进程发送SIGALRM信号setitimer也可以创建定时器,和alarm函数相比,最显著的区别就是它可以指定到微秒,而且可以循环发送man 2 setitimer#include <stdio.h>#include <unistd.h>#include <sys/time.h>#include <signal.h>#include <string..原创 2021-10-27 14:14:16 · 1766 阅读 · 0 评论 -
数字和字符串之间的相互转换
atoi();sprintf();原创 2021-10-19 09:25:51 · 61 阅读 · 0 评论 -
mknod创建一个设备节点
mknod是make node的缩写,就是创建一个节点(设备文件又叫做设备节点)。在linux系统中,一个节点代表一个文件,创建一个文件最主要的根本工作就是分配一个新的节点(注意,这是存在于磁盘上的节点,之后还会有存在于内存中的节inode)。包含节点好的分配(节点号在一个文件系统中是唯一的,可以以此来区别不同的文件。如上面ls -i选项就列出在一个文件系统中是唯一的,可以用来区分不同的文件。如上面ls命令的-i选项就列出来了/dev/vser0设备节点号为49711),然后初始化好这个新节点(包...原创 2021-09-30 15:35:25 · 1257 阅读 · 0 评论 -
mt_gpio
MTK平台 通过adb shell 修改/显示 GPIO 状态 更新 - 芯缘异码原创 2021-09-17 17:51:55 · 369 阅读 · 0 评论 -
vim配色方案
set backspace=2set nocompatible filetype off set rtp+=~/.vim/bundle/Vundle.vimcall vundle#begin()set runtimepath+=~/.vim/bundle/YouCompleteMeautocmd InsertLeave * if pumvisible() == 0|pclose|endiflet g:ycm_collect_identifiers_from_tags_files =.原创 2021-09-02 16:37:37 · 451 阅读 · 0 评论 -
使用sscanf处理以逗号分隔的字符
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <strings.h>int main(){ char str1[128] = {0}; FILE *fp; char str2[128] = {0}; char str3[128] = {0}; int num = 128; fp = fopen("test","r"); if(fp < 0) .原创 2021-08-10 14:27:46 · 3840 阅读 · 0 评论 -
linux下安装调用opensll
下载opensll:http://www.openssl.org/source/在Linux下使用tar 命令进行安装:tar xzvfopenssl-3.0.0-beta2.tar.gz解压完成:查看./config文件使用make进行编译使用sudo make install命令./config:生成一个makefile并检查一下文件,在执行make将源码编译为库文件或者二进制文件,在执行make install(sudo)进行安装,安装完成后可以使用...原创 2021-08-03 23:30:21 · 505 阅读 · 0 评论 -
sscanf对字符串的处理
#include <unistd.h>int main(){ //sscanf函数只能取到从开头到什么结尾为止的字符串吗? char str[512] = {0}; sscanf("123456","%s",str); printf("str = %s\n",str); //取指定长度 sscanf("123456","%4s",str); printf("str=%s\n",str); //取到指定字符为止的字符串,如.原创 2021-06-07 17:44:10 · 964 阅读 · 1 评论 -
linux的信号机制
描述本文简单介绍下Linux信号处理机制,为介绍二进制翻译下信号处理机制做一个铺垫。本文主要参考书目《Linux内核源代码情景分析》《独辟蹊径品内核:Linux内核源代码导读》首先,先说一下什么是信号。信号本质上是在软件层次上对中断机制的一种模拟,其主要有以下几种来源:程序错误:除零,非法内存访问…外部信号:终端Ctrl-C产生SGINT信号,定时器到期产生SIGALRM…显式请求:kill函数允许进程发送任何信号给其他进程或进程组。在Linux下,可以通过以下命令查看系统所有的.转载 2021-06-04 16:54:29 · 1044 阅读 · 0 评论 -
写一个守护进程
#include <sdtio.h>#include <stblib.h>#include <string.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#define MAXDILE 65535int main(){ int i,fd; pid_t pid; char *buf.原创 2021-05-13 17:27:00 · 159 阅读 · 0 评论 -
fopen发生的段错误
当使用的路径名不正确的时候,fopen函数会报段错误。原创 2021-04-28 11:37:56 · 1176 阅读 · 1 评论 -
linux 文件系统
linux是树型结构目录,最底层的目录表示为“/”,表示为linux的根目录。在根目录下存放着各个子目录,其中/bin --表示linux中存放着的可以使用的命令操作,这些命令操作可以超级用户使用,也可以普通用户使用。与此相似的是存放超级用户的文件件/sbin/sbin --存放超级用户的可以使用的的命令,例如:powerof ,关机操作这些命令还有一些/lib ,/lib64这些依赖库的文件夹/lib ,/lin64 -- 这些文件夹主要存放一些依赖库,就比如在linux中使用python原创 2021-04-28 13:58:49 · 115 阅读 · 0 评论 -
linux编码风格
在windows中习惯以如下风格命名:宏、变量和函数#define PI 3.1415926 /*以全部大写的放式定义宏*/int numMax,numMix /*以第一个字母小写,第二个字母大写的方式定义变量*/void SendData(void) /*以第一首字母大写来定义函数*/linux中编码风格#define PI 3.1415926int num_max,num_minvoid send_data(void)...原创 2021-03-26 15:53:57 · 127 阅读 · 0 评论 -
linuxer
我认为的基本功包括两个方面:1、linux的基本操作。内核中的很多设计都是源于应用,你不理解用户空间的操作,也就不会知道内核空间在干什么。这时候,你需要做的就是在自己的计算机上安装一个GNU/linux操作系统,Debian、Ubuntu什么的都OK,最好去掉其他的OS,这可以强迫你在linux下进行学习,工作,生活。在这个过程中,你可能需要google检索一些信息,安装一些软件,学习使用这些软件,理解一些基本的linux的背景知识......如果你想要从事底层的软件开发,那么尽量在终端下工作,这样会让你原创 2021-03-26 15:31:52 · 213 阅读 · 0 评论 -
数组与指针
数组与指针数组下标可以确定数组元素在数组中的顺序和存储地址。由于每个数组元素相当于一个变量,因此指针变量可以指向数组中的元素,也就是说可以用指针方式访问数组中的元素。对一个指向数组元素的指针变量的定义和赋值方法,与指针变量相同,例如:int a[10]; /*定义a为包含10个整型数据的数组*/int *p; /*定义P为指向整型数据变量的指针*/p = &a[0]; /*把a[0]元素的地址赋给指针变量p*///c语言规定,数组名代表数组的首地址,也就原创 2021-03-22 09:03:39 · 116 阅读 · 0 评论 -
数组小笔记
一、一维数组在c语言中只能逐个使用下标变量,而不能一次引用整个数组。给数组赋值的方法除了用赋值语句对数组元素逐个赋值外,还可以采用初始化赋值和动态赋值的方法。数组初始化赋值是指在数组定义时给数组元素赋予初值。数值初始化是在编译阶段进行的,这样将减少程序运行时间,提高效率。在输出数组时,通常使用循环语句逐个输出各下标变量。#include <stdio.h>void main(){ int i,a[10]; for(i=0;i<=9;i++) {原创 2021-03-21 16:54:34 · 304 阅读 · 0 评论 -
atol函数对数据的处理
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ long val; char str[20]; strcpy(str, "98 '\0'993489"); /*char *temp = str; temp = temp +3; *temp = ' '; temp = temp +1; .原创 2021-03-16 17:36:04 · 178 阅读 · 0 评论 -
数组与链表
数组的优势:1.按照索引查询元素速度很快2.能存储大量数据3.按照索引遍历数组方便劣势:1.根据内容查询元素速度慢2.数据的大小一旦给定就不能改变3.数组只能存储一种数据类型4.增加、删除元素效率慢链表的优势:1.插入删除速度快2.内容利用率高,不会浪费内存3.大小不固定,扩展性灵活劣势:1.不支持随机查找,必须从第一个开始遍历,查找效率低2.链表中存储元素需要更多的内存,因为链表中每个节点都包含一个指针,需要额外的内存哈希表:特点:1原创 2021-03-16 15:14:32 · 119 阅读 · 0 评论 -
代码
static void next_field(char **line, char *output, int n, int m) { int i = 0; char *temp = NULL; if(m != 33){ while (**line == ' ') (*line)++; } if(m == 3)//m==3时,对ssid的统一长度处理 { .原创 2021-03-16 14:13:15 · 93 阅读 · 0 评论 -
char 转数字
INT AtoHex(CHAR c){ if (c >= 'A' && c <= 'F') return (c - 'A' + 0x0A); if (c >= 'a' && c <= 'f') return (c - 'a' + 0x0a); if (c >= '0' && c <= '9')...原创 2021-03-15 09:42:25 · 719 阅读 · 0 评论 -
打印当前文件路径下的filename
#include <stdio.h>#include <dirent.h>int main(){ DIR *dirptr = NULL; int i = 1; struct dirent *entry; if((dirptr = opendir(".")) == NULL) { printf("opendir failed!"); .原创 2021-03-11 20:37:34 · 414 阅读 · 0 评论 -
linux软链接使用
ln -s (link)注意点,使用最对路径1、使用相对路径:生成了一个无法打开的文件2、使用绝对路径;原创 2021-03-09 15:00:09 · 106 阅读 · 0 评论 -
linux系统日志之使用syslog来记录调试信息
https://blog.csdn.net/wangweijundeqq/article/details/89603622一、使用syslog来记录调试信息syslog 是一种工业标准的协议,用来记录设备的日志1、openlog、syslog、closelog函数openlog为当前的应用程序打开一个log文件syslog用来记录一条信息closelog用来关闭本程序的log文件可以使用这三个函数,为系统文件写一条条的日志,用日志来做记录,日志信息就是一个文件,通过查看这个文件,就转载 2021-03-08 13:54:35 · 1090 阅读 · 0 评论 -
实现简单ifconfig功能
/** * \file getifstat.c * \author wzj * \brief 访问这个struct ifconf 修改,查询状态 * \version * \note * \date: 2012年08月11日星期六22:55:25 */ #include <net/if.h> /* for ifconf */ #include <li...原创 2021-03-04 19:50:44 · 631 阅读 · 3 评论 -
获取网卡的IP地址
#include <string.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <net/if.h> #include <stdio.h> #include <netinet/in.h> #include <arpa/inet.h> int main() ...原创 2021-03-04 19:42:05 · 539 阅读 · 1 评论 -
2021-03-04
一、struct ifreq结构体这个结构定义在/usr/include/net/if.h,用来配置和获取ip地址,掩码,MTU等接口信息的。 /* Interface request structure used for socket ioctl's. All interface ioctl's must have parameter definitions which begin with ifr_name. The remainder may b.转载 2021-03-04 19:38:55 · 125 阅读 · 3 评论 -
检查Linux服务器性能
文章目录 九条指令查看Linux服务器指令 一、uptime 二、dmesg命令 三、vmstat命令 四、mpstat命令 五、pidstat命令 六、iostat命令 七、free命令 八、sar命令 九、top命令九条指令查看Linux服务器指令一、uptime...转载 2021-03-01 16:48:38 · 139 阅读 · 0 评论 -
嵌入式必知必会
1、预处理器(Preprocessor)... 12、如何定义宏... 23、预处理器标识#error的目的是什么?... 44、死循环(Infinite loops)... 45、数据声明(Data declarations)... 56、关键字static的作用是什么?... 67、关键字const有什么含意?... 78、Volatile的使用... 99、位操作(Bit manipulation)... 1210、访问固定的内存位置(Accessing fixed memory l转载 2021-02-26 11:39:32 · 922 阅读 · 0 评论 -
利用多核多线程进行程序优化
大家也许还记得 2005 年 3 月 C++ 大师 Herb Sutter 在 Dr.Dobb’s Journal 上发表了一篇名为《免费的午餐已经结束》的文章。文章指出:现在的程序员对效率、伸缩性、吞吐量等一系列性能指标相当忽视,很多性能问题都仰仗越来越快的 CPU 来解决。但 CPU 的速度在不久的将来,即将偏离摩尔定律的轨迹,并达到一定的极限。所以,越来越多的应用程序将不得不直面性能问题,而解决这些问题的办法就是采用并发编程 技术。样例程序程序功能:求从1一直到 APPLE_MAX_VALUE转载 2021-02-26 11:30:12 · 1032 阅读 · 0 评论 -
基础问题问答
1、内核是如何创建shell进程的?2、进程是如何得到输入的程序名3、内核是如何运行程序的4、硬盘是由许多金属或玻璃的盘片组合起来构成的,这些盘片上可以保存磁性信息,问题是目录在哪里?5、用户在自己的主目录中意味着什么?转到其他目录有以为着什么?6、Unix允许很多用户同时登录到系统中,他们可以有相同的当前目录,也可以在不同的目录中,会不会因为很多用户在同一个目录中导致这个目录过分拥挤?7、如果自己编写一个改变当前目录的程序,该如何来实现8、内核在这颗目录树下·扮演什么角色U原创 2021-02-21 15:09:37 · 125 阅读 · 1 评论 -
取mac地址的后四位
#include <stdio.h>int main(){ int num = 17; char tmp[17] = "123445"; char *buff = "8c:88:2b:10:00:0e"; char temp[17] = {0}; strncpy(temp,buff,sizeof(temp)); printf("%c\n",temp[11]); sprintf(tmp,"%c%c%c%c",temp[12],tem.原创 2021-02-18 16:55:09 · 541 阅读 · 0 评论 -
判断一个指针是否为空
#include <stdio.h>int main(){ char *buff = "hello"; char temp[60]="1234567498774584156"; //temp = (char *)malloc(60); sprintf(temp,"%s;%s;%s;%s",buff,buff,buff,buff); printf("%s/n",temp); if(buff[0]) { printf(.原创 2021-02-18 10:50:20 · 1726 阅读 · 0 评论