自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(368)
  • 资源 (3)
  • 收藏
  • 关注

原创 inet_aton、inet_addr、inet_ntoa 、inet_ntop、inet_pton

2、inet_aton:将一个字符串IP地址转换为一个32位的网络序列IP地址。如果这个函数成功,函数的返回值非零,如果输入地址不正确则会返回零。1、inet_addr:点分十进制的IP地址字符串转化为unsigned int(网络字节序)3、inet_ntoa:将网络地址转换成“.”点隔的点分十进制IP地址字符串格式。ip地址的转换总是让人头大,整合到一起看吧。

2024-03-22 11:04:42 194

原创 检测usb口HotPlug-netlink

netlink使用

2024-03-22 10:01:38 347

原创 儿童诗词学习

鹿寨(王维)空山不见人,但闻人语响。返景入深林,复照青苔上。独坐敬亭山(李白)众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山。杂诗(王维)君自故乡来,应知故乡事。来日绮窗前,寒梅著花未。梅花(王安石)墙角数枝梅,凌寒独自开。遥知不是雪,为有暗香来。回乡偶书(贺知章)少小离家老大回,乡音无改鬓毛衰。儿童相见不相识,笑问客从何处来。春夜喜雨(杜甫)好雨知时节,当春乃发生。随风潜入夜,润物细无声。野径云俱黑,江船火独明。晓看红湿处,花重锦

2022-05-30 15:58:08 612 3

原创 Shell脚本 - cut、sort、paste

1、cut:用来提取文件的片段-d 后面指定分隔的符号-f 指定显示第几列-c 后面跟显示的字符1-n,character-b 后面根据显示的字节,bytekdvmt@kdvmt:temp$ cat 2.txt | cut -b 1-6hello name yleaf ckdvmt@kdvmt:temp$ cat 2.txt | cut -c 1-5helloname leafkdvmt@kdvmt:temp$ cat 2.txt hello dog, hello

2021-07-23 17:20:30 555 1

原创 Shell脚本-NF、FS(OFS)、RS(ORS)、NR(FNR)

NFNF:number of fileds(字段/域的个数)整数$NF: 取最后一列的字符串等同于$1、$2等等来看个例子吧kdvmt@kdvmt:temp$ ls *.sh -al-rwxr-xr-x 1 kdvmt kdvmt 72 2021-07-12 16:27 fileexist.shkdvmt@kdvmt:temp$ ls *.sh -al | awk -F ' ' '{print NF}'8kdvmt@kdvmt:temp$ ls *.sh -al | awk -F ' '

2021-07-22 19:51:37 3998

原创 Cpu内存信息查询-代码方式查询并保存

代码中可能常常需要使用Cpu和内存的信息,即用shell命令查询出来的再送到代码的字符串等变量中。#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ char achCmd[128] = {0}; FILE* pStream = NULL; int a; //strcpy(achCmd,"cat /proc/meminfo | grep MemTotal

2020-07-09 09:44:21 955

原创 程序依赖库

1、find the dependents library of a programLinux OS:ldd : print shared library dependencies$ ldd your_program_namewinodws OS:dll 的依赖&gt;&gt;cd VS_INSTALL_DIR/VC/bin&gt;&gt;dumpbin /dependents   your_dl...

2018-07-15 12:22:17 606

转载 ARM平台下独占访问指令LDREX和STREX的原理与使用详解

为了实现线程间同步,一般都要在执行关键代码段之前加互斥(Mutex)锁,且在执行完关键代码段之后解锁。为了实现所谓的互斥锁的概念,一般都需要所在平台提供支持。本文主要用来说明ARM平台上特有的独占访问指令LDREX和STREX的工作原理,以及如何使用。而它们也是ARM平台上,实现互斥锁等线程同步工具的基础。我们先来看看LDREX和STREX两条指令的语义。其实LDREX和STREX指令,是将单纯的...

2018-07-12 11:12:50 807

原创 软硬链接

在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号inode.在Linux系统中,链接分为硬链接和符号链接。1)软链接(符号链接)软链接,其实就是新建立一个文件inode(具有新的i节点)这个文件就是专门用来指向别的文件的(类似于Windows下的快捷方式)。软链接产生的是一个新的文件,但这个文件的作用就是专门指向某个文件的,删了这个软链接文件,原来的...

2018-06-28 10:35:08 1174

原创 地址解析协议ARP和RARP

1、地址解析协议的工作原理(ARP:Address Resolution Protocol)广播发送ARP请求,单播发送ARP响应。1)首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。2)当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该...

2018-06-27 10:18:14 813

原创 逆向扫描指令

逆向扫描指令BSR(Bit Scan Reverse),从左向右扫描,即从高位向低位扫描。Search the mask data from most significant bit (MSB) to least significant bit (LSB) for a set bit (1).即第一个出现1的位置。原型:unsigned char _BitScanReverse(unsigned ...

2018-06-21 15:31:25 3305

原创 Socket 编程--TCP实现的例子

基于TCP(面向连接)的socket编程,分为客户端和服务器端。客户端的流程如下:(1)创建套接字(socket)(2)向服务器发出连接请求(connect)(3)和服务器端进行通信(send/recv)(4)关闭套接字服务器端的流程如下:(1)创建套接字(socket)(2)将套接字绑定到一个本地地址和端口上(bind)(3)将套接字设为监听模式,准备接收客户端请求(listen)(4)等待客户...

2018-06-21 11:10:55 1912

原创 TCP/UDP的Socket编程接口详解

基于TCP(面向连接)的socket编程,分为客户端和服务器端。服务器端的流程如下:(1)创建套接字(socket)(2)将套接字绑定到一个本地地址和端口上(bind)(3)将套接字设为监听模式,准备接收客户端请求(listen)即等待客户端调用connect().(4)等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept)(5)用返回的套接字和客户端进行...

2018-06-20 11:23:47 25463 3

转载 sockaddr和sockaddr_in详解

struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址。一、sockaddrsockaddr在头文件#include &lt;sys/socket.h&gt;中定义,sockaddr的缺陷是:sa_data把目标地址和端口信息混在一起了,如下:struct sockaddr { sa_family_t sin_family;//地址族...

2018-06-13 18:55:55 10023

原创 网站

1、C++http://www.runoob.com/cplusplus/cpp-interfaces.html 2、个税计算器http://www.us35.com/3、C语言关键字http://c.biancheng.net/cpp/html/450.html4、精品课http://course.jingpinke.com/search?level=benke&amp;subject01=01...

2018-06-11 15:23:15 436 2

原创 strcpy/strlen/malloc

1、strcpy需要注意点-- 源字符串加const修饰,表明其为输入参数-- 对源字符串指针和目的字符串指针加非0断言-- 为了实现链式操作,将目的地址返回char * strcpy(char * strDest,const char * strSrc){ assert((strDest != NULL) &amp;&amp; (strSrc != NULL)); char * res =...

2018-06-11 14:28:58 566

转载 构造函数不能为虚函数

1,从存储空间角度 虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,无法找到vtable,所以构造函数不能是虚函数。2,从使用角度 虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数本身就是要初始化实例,那...

2018-06-11 14:28:41 205

转载 C++:构造函数和析构函数能否为虚函数

C++:构造函数和析构函数能否为虚函数?简单回答是:构造函数不能为虚函数,而析构函数可以且常常是虚函数。(1) 构造函数不能为虚函数让我们来看看大牛C++之父 Bjarne Stroustrup 在《The C++ Programming Language》里是怎么说的:To construct an object, a constructor needs the exact type of th...

2018-06-11 14:28:17 2586 3

原创 互斥锁Mutex和信号量

1、Mutex 互斥量/互斥锁Mutex本质上说就是一把锁,提供对资源的独占访问,所以Mutex的主要作用是用于互斥的访问共享资源。Mutex对象的值,只有0和1两个值。这两个值也分别代表了Mutex的两种状态。值为0,表示锁定状态,当前对象被锁定,用户进程/线程如果试图Lock临界资源,则进入排队等待。值为1,表示空闲状态,当前对象为空闲,用户进程/线程可以Lock临界资源,之后Mutex值减1...

2018-06-11 14:27:57 7272

原创 elaboration/simulation/simulation kernel

2018-06-11 14:18:43 454 1

原创 虚继承

1、多继承(环状继承),A-&gt;D,B-&gt;D,C-&gt;(A,B),例如:class D{......};class B: public D{......};class A: public D{......};class C: public B, public A{.....};这个继承会使D创建两个对象(C++编译器现在已优化?),要解决上面的问题,就要采用虚拟继承格式:cla...

2018-06-10 10:42:54 414

原创 判断链表中是否有环/子串

怎么判断链表中是否有环?答:用两个指针来遍历这个单向链表,第一个指针p1,,每次走一步,第二个指针p2,每次走两步,当p2指针追上p1的时候,就表明链表当中有环路了。int testLinkRing(Link *head){ Link *t1 = head, *t2 = head; while(t1-&gt;next &amp;&amp; t2-&gt;next) { t1 = t1-...

2018-05-28 15:33:23 357

原创 explict和implicit

explicit:只能用于修饰只有一个参数的类构造函数。作用是:表明该构造函数是显式的,而非隐式的。implicit:与explicit相对应的关键字,隐式的。类的构造函数在默认情况下是implicit的。在C++中,如果类的构造函数只有一个参数时,那么在编译的时候会有一个缺省的转换操作,即编译器自动将整型转换为类类型的对象。class CXString{public: char * _ps...

2018-05-25 17:36:42 909

原创 TCP和UDP

1)TCP传输控制协议TCP提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常一个是客户,另一个是服务器)在彼此交换数据之间必须先建立一个TCP连接。在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP。TCP通过下列方式来提供可靠性:-- 应用数据被分割成TCP认为最适合发送的数据块。由TCP传递给IP的信息单位称为报文段或段(segment)-- 当T...

2018-05-23 17:09:57 337

原创 printf(),sprintf(),fflush()

1、printf() 中%m.nsm表示占用宽度,n表示从相应的字符串中最多取用的字符串数。如果n&lt;m,需要补空格,没有负号的左补空格,有负号的右补空格。如果n&gt;m,按照n指定的宽度进行输出。#include &lt;stdio.h&gt;int main(){ char * mystr = "hello world."; printf("%5.5s\n",mystr); /...

2018-04-13 16:34:41 2155

原创 sleep(),wait(),软链接和硬链接

1、wait()和sleep()sleep() 是Thread类中的方法,而wait()则是Object类中的方法。sleep()方法导致了程序暂停,但是它的监控状态仍然保持着,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。wait()方法会导致线程放弃(释放)对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象...

2018-04-11 20:40:00 282

原创 Flash磨损均衡技术解析(wear-leveling)

1、命令的传输传输层接收到来自于应用层的命令请求后,根据命令的不同将相关寄存器中的信息按照SATA标准协议规定的格式封装为FIS传递给数据链路层。当数据链路层成功接收后,向传输层反馈一个传输完成的状态标志。传输层接收到来自数据链路层的FIS后,判断该FIS是否有效以及类型。如果是有效的类型,则按照SATA标准协议规定格式进行解析,并将其中的数据映射到对应的寄存器中,然后通知应用层更新相应寄存器的值...

2018-03-06 14:39:25 13219

原创 消息队列

消息队列是消息的链表(不是文件),存放在内存中,由内核维护。消息队列的特点:---- 消息队列中的消息是有类型的。(读取的时候可以根据消息的类型读取消息,没有必要先进先出)---- 消息队列中的消息是有格式的。---- 消息队列可以实现消息的随机查询。消息不一定要以先进先出的次序读取,编程时可以按消息的类型读取。---- 消息队列允许一个或多个进程向它写入或者读取消息。---- 与无名管道、命名管...

2018-03-05 16:40:40 537

原创 聊天软件-管道实现

carie和vally之间的对话talk_carie.c如下:#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#include &lt;string.h&gt;#include &lt;unistd.h&gt;#include &lt;errno.h&gt;#include &lt;fcntl.h&gt;#include &lt;sys...

2018-03-01 20:57:43 309

原创 文件描述符

文件描述符概述:1)文件描述符是非负整数 &gt;=0,是文件的标识。2)用户使用文件描述符(file descriptor)来访问文件。3)利用open打开一个文件时,内核会返回一个文件描述符。每个进程都有一张文件描述符的表,进程刚被创建时,标准输入、标准输出、标准错误输出设备文件被打开,对应的文件描述符0、1、2记录在表中。在进程中打开其他文件时,系统会返回文件描述符表中最小可用的文件描述符,...

2018-03-01 14:20:11 420

原创 fcntl函数

编程时可通过fcntl函数设置文件的阻塞特性。设置为阻塞:fcntl(fd,F_SETFL,0);设置为非阻塞:fcntl(fd,F_SETFL,O_NONBLOCK);fcntl -- manipulate file descriptorint fcntl(int fd, int cmd,.../*arg*/);cmd:F_GETFD(void):read the file descriptor...

2018-03-01 14:02:13 1312

原创 管道-命名管道(FIFO)

命名管道(FIFO)和管道(pipe)基本相同,但也有一些不同的地方:1)FIFO在文件系统中作为一个特殊的文件而存在,但FIFO中的内容却存放在内存中。(某个目录下有一个文件名)2)当使用FIFO的进程退出后,FIFO文件将继续保存在文件系统中以便以后使用。3)FIFO有名字,不相关的进程可以通过打开命名管道进行通信。FIFO文件的创建#include &lt;sys/types.h&gt;#i...

2018-02-28 17:41:37 1243 1

原创 复制文件描述符dup和dup2

文件描述符的复制:dup和dup2是两个非常有用的系统调用,都是用来复制一个文件的描述符,使新的文件描述符也标识旧的文件描述符所标识的文件。&gt;&gt; int dup(int oldfd);&gt;&gt; int dup2(int oldfd,int newfd);dup和dup2经常用来重定向进程的stdin,stdout和strerr。如:ls &gt; log.txt 将ls的输出信...

2018-02-27 17:51:41 1354

原创 管道-无名管道

管道(pipe)概述:(怎样使用管道实现父子进程间通信)不相关的两个进程无法通过无名管道进行进程间通信。管道又称无名管道(没有名字),无名管道是一种特殊类型的文件,在应用层体现为两个打开的文件描述符。管道是最古老的UNIX IPC方式,其特点是:1&gt; 半双工,数据在同一时刻只能在一个方向上流动。(单工-收音机)2&gt; 数据只能从管道的一端写入,从另一端读出。3&gt; 写入管...

2018-02-12 15:19:42 620

原创 可重入函数和信号集

--- 可重入函数:可重入函数是指函数可以由多个任务并发使用,而不必担心数据错误。编写可重入函数:&gt;&gt;不使用(返回)静态的数据、全局变量(除非用信号量互斥)&gt;&gt;不调用动态内存分配、释放函数。&gt;&gt;不调用任何不可重入的函数(如标准I/O函数)注:即使信号处理函数使用的都是可重入函数,也要注意进入处理函数时,首先要保存errno的值,结束时,再恢复原值。因为信号处理过...

2018-02-11 16:17:31 327

原创 信号-signal

1、Kill:调用kill函数终止进程#include &lt;sys/types.h&gt;#include &lt;signal.h&gt;int kill(pid_t pid, int signum);功能:给指定的进程发送编号为signum的信号。返回值:成功返回0,失败返回-1.&gt;&gt; pid的取值有4种情况:1)pid&gt;0:将信号传送给进程ID为pid的进程。(单个进程...

2018-02-06 15:39:04 241

原创 IPC和Kill

进程间通信(IPC:Inter Processes Communication)进程是一个独立的资源分配单元,不同进程(通常指用户进程)之间的资源是独立的,没有关联。不能在一个进程中直接访问另一个进程的资源(例如打开的文件描述符)进程不是孤立的,不同的进程需要进程信息的交互和状态的传递等,因此需要进程间通信。>> 进程间通信功能:1)数据传输:一个进程需要将它的数据发送给另一个

2018-02-05 16:17:35 343

原创 exit和vfork

在linux中,可以用以下函数结束正在运行的进程。&gt;&gt; exit函数—库函数#include &lt;stdlib.h&gt;void exit(int value);参数:value是返回给父进程的参数,低8位有效。&gt;&gt; _exit函数—系统调用#include&lt;unistd.h&gt;void _exit(int value);参数:value是返回给父进程的参数...

2018-02-03 18:07:51 320

原创 写缓冲和sleep

缓冲---- 行缓冲:标准C库的输入输出函数,向屏幕(标准输出)写东西的时候是行缓冲的。Write系统函数,无缓冲使用库函数往屏幕上写东西时是行缓冲。系统调用是无缓冲的。>> 也就是输出的内容会存在缓冲区里,直到缓冲区里有‘\n’才刷新缓冲区。>> 或者调用fflush(stdout)人为的刷新缓冲区。>> 程序结束了也会刷新缓冲区。>> 缓冲区满了,也会刷新缓冲区。-

2018-02-02 16:16:17 395 3

原创 等待子进程结束wait()和waitpid()

父子进程有时需要简单的进程间同步,如父进程等待子进程的结束。linux提供了以下两个等待函数:wait(),waitpid().需要包含头文件:#include &lt;sys/types.h&gt;#include &lt;sys/wait.h&gt;1)  pid_t wait(int *status);功能:等待任一子进程终止,如果子进程终止了,此函数会回收子进程的资源。调用wait函数的进...

2018-02-02 15:07:12 12882

eclipse.exe

用于Android开发的Eclipse开发环境,有利于Android的开发的编译和运行

2014-10-07

SDK Manager

android 软件开发包SDK(software Development kit)

2014-10-07

粒子群优化算法

表述了人工智能中对粒子群的行为等的研究,并总结出优化算法

2012-12-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除