
工作笔记
xiaoshengqdlg
这个作者很懒,什么都没留下…
展开
-
工作笔记-修改Iperf的Makefile文件编译出调试程序
Iperf的release版本并不支持调试,需要我们修改Ma原创 2014-04-23 10:54:11 · 927 阅读 · 0 评论 -
select函数总结
阻塞方式block,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回。使用Select就可以完成非阻塞non-block,就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回值的不同来反映函数的执行情况,如果事件发生则与阻塞方式相同,若事件没有发生则返回一个代码来告知事件未发生,而进程或线程继续执行,所以效率较高。转载 2014-07-15 15:42:13 · 365 阅读 · 0 评论 -
关于操作IP地址的函数
inet_addr 将"数字+句点"的格式的IP地址转换到unsigned long中,返回值已经是按照网络字节顺序的相反inet_ntoa把类型为struct in_addr的数据转化为"数字+句点"的形式的字符串typedef u_int32_t in_addr_t;struct in_addr{ in_addr_t s_addr;};本机字节顺序与转载 2014-07-15 13:48:18 · 509 阅读 · 0 评论 -
标准C语言各种时间函数用法
1.概念在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。下面主要介绍在C/C++中时间和日期的使用方法.通过学习许多C/C++库,你可以有很多操作、使用时间的方法。但在这之前你需要了解一些“时间”和“日期”的概念,主要有以下几个:Coordinated Universal Time(UTC):协调世界时,又称为世界标准转载 2014-07-30 09:40:59 · 19141 阅读 · 1 评论 -
工作笔记 NTP fix bug
linux的命令实质上都是一些可执行文件,这些可执行文件存放在PATH原创 2014-07-11 16:21:43 · 903 阅读 · 0 评论 -
send recv sendto recvfrom
send函数int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。该函数的第一个参数指定发送端套接字描述符;第二个参数转载 2014-07-29 15:23:35 · 714 阅读 · 0 评论 -
工作笔记 ALG cscope
ALG是路由器的功能,如果两台PC之间yon原创 2014-07-10 11:21:29 · 739 阅读 · 0 评论 -
PPPoE技术白皮书
PPPoE技术白皮书关键词:PPP,Ethernet,PPPoE摘 要:PPPoE是一种通过一个远端接入设备为以太网上的主机提供接入服务,并可以对接入的每个主机实现控制和计费的技术。本文介绍了PPPoE的产生背景、技术优点、工作过程和典型组网应用。缩略语:缩略语英文全名中文解释ADSLAsym转载 2014-07-09 19:54:17 · 640 阅读 · 0 评论 -
linux下一个定时器的使用方法
这是linux下一个精确定时器的使用方法#define READ_INTERVAL 40*1000000static int timer_init(){ int ret; struct sigevent sev; struct itimerspec its; sev.sigev_notify = SIGEV_TH原创 2014-08-01 10:44:55 · 596 阅读 · 0 评论 -
关于使用UDP套接字进行本地进程通信
1、linux中进程间的通信可以使用套接字的方式2、套接字的方式即将套接字的目的地设为“127.0.0.1:port”。以发包的形式将数据传输到本地的某个进程3、套接字的方式可以选择UDP也可以选择TCP。UDP是不可靠连接,包头中只有源端口,目的端口,UDP长度以及UDP的校验和。传输层协议的校验和是需要对整个数据包进行校验的,具体可以查阅UDP协议和TCP协议头部的解释。4、另外在转载 2014-07-26 12:34:25 · 1903 阅读 · 0 评论 -
Linux的hrtimer高精度定时器的使用
#include #include #include #include MODULE_LICENSE("GPL");#define MS_TO_NS(x) (x * 1E6L)//zstatic struct hrtimer hr_timer;enum hrtimer_restart my_hrtimer_callback( struct hrtimer *timer ){转载 2014-08-01 17:53:16 · 1667 阅读 · 0 评论 -
进程工作目录
linux的lsof命令能够显示被进程打开的文件或目录。被进程打开的文件就是在某个原创 2014-08-20 17:21:48 · 1321 阅读 · 0 评论 -
杂乱知识总结(strcpy,memcpy.fork,)
当内核执行C程序时,(使用一个exec函数),在调用main函数之前县调用一个特殊转载 2014-08-21 20:41:53 · 599 阅读 · 0 评论 -
写程序笔记
1、宏可以作为函数参数get_value(URI_TR)原创 2014-09-20 16:41:41 · 501 阅读 · 0 评论 -
sem_init()函数
信号量的数据类型为结构sem_t,它本质上是一个长整型的数。函数sem_init()用来初始化一个信号量。它的原型为: extern int sem_init __P ((sem_t *__sem, int __pshared, unsigned int __value)); sem为指向信号量结构的一个指针;pshared不为0时此信号量在进程间共享,否则只能为当前进程的所有转载 2014-07-22 19:04:46 · 13863 阅读 · 1 评论 -
fcntl
文件控制函数 fcntl -- file controlLIBRARY Standard C Library (libc, -lc)SYNOPSIS #include ; int fcntl(int fd, int cmd, ...);[描述] Fcntl()针对(文件)描述符提供转载 2014-07-15 17:33:06 · 653 阅读 · 0 评论 -
内核套接字sock
用户socket与内核sock是一一对应的,在用户socket结构体中有成员变量原创 2014-08-27 20:07:16 · 616 阅读 · 0 评论 -
工作笔记-学会看wireshark分析TCP
用wireshark抓包分析原创 2014-07-03 19:56:14 · 953 阅读 · 0 评论 -
工作笔记
分析start_kernel函数 位于init/main.c#8 kernel/irq/handle.c 中断描述符的初始化在early_irq_init中进行中断描述符的action没有进行初始化默认为NULL,可以调用request_irq来进行注册#9 start_kernel函数中调用t原创 2014-08-13 11:30:08 · 507 阅读 · 0 评论 -
深入理解linux计数内幕(学习笔记帧传出)
要传输帧时,内核会提供dev_queue_xmit函数,此函数会从设备的原创 2014-08-24 15:29:03 · 612 阅读 · 0 评论 -
SVN工作原理
首先理解三个概念:原创 2014-07-08 16:53:08 · 3812 阅读 · 1 评论 -
getsockname函数
用来返回套接字的本地IP地址。转载 2014-04-24 13:14:05 · 5105 阅读 · 0 评论 -
stat函数
相关函数:fstat, lstat, chmod, chown, readlink, utime头文件:#include #include 定义函数:int stat(const char * file_name, struct stat *buf);函数说明:stat()用来将参数file_name 所指的文件状态, 复制到参数buf 所指的结构中。下面是s转载 2014-07-22 18:45:50 · 527 阅读 · 0 评论 -
linux下ftp命令详解
ftp服务器在网上较为常见,Linux ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件,这里详细介绍Linux ftp命令的一些经常使用的命令,相信掌握了这些使用Linux 进行ftp操作将会非常容易。Linux ftp命令的一般格式如下:$ ftp 主机名/IP其中“主机名/IP”是所要连接的远程机的主机名或IP地址。在命令行中,主机名属于选项,如果指定转载 2014-04-29 12:46:28 · 531 阅读 · 0 评论 -
select函数用法
原型int select(int nfds,fd_set* readfds,fd_set* writefds,fd_set* exceptfds,const struct timeval* timeout);nfds:本参数忽略,仅起到兼容作用。 readfds:(可选)指针,指向一组等待可读性检查的套接口。 writefds:(可选)指针,转载 2014-04-24 14:37:19 · 543 阅读 · 0 评论 -
configure文件的生成
作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。 在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样转载 2014-04-23 14:06:24 · 1862 阅读 · 0 评论 -
#ifdef #ifndef #define,#endif解析
我们在看一些开源的源代码的时候,经常会看到如下情景:# if defined(_PTHREADS) && !defined(_NOTHREADS)# define __STL_PTHREADS# endif # if defined(_UITHREADS) && !defined(_PTHREADS) && !defined(_NOTHREADS)# def转载 2014-04-23 13:47:19 · 782 阅读 · 0 评论 -
用gdb调试软件
使用GDB一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点。如:$gcc -g -Wall hello.c -o hello$g++ -g -Wall hello.cpp -o hello如果没有-g,你将看不见程序的函数名、变量名,所代替的全是运行转载 2014-04-23 13:10:11 · 719 阅读 · 0 评论 -
面向报文UDP和面向字节流TCP的区别
面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这也就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。面向字节流的话,虽然应用程序和TCP的交互是一次一个数据块(转载 2014-04-18 11:02:18 · 1656 阅读 · 0 评论 -
iperf测试UDP带宽
使用iperf的-b参数可以指定带宽大小,请注意这个指定的带宽大小并不是要获得带宽数据,需要不断在client端增加带宽值,直到server端出现轻微的丢包为止,此时server端显示的带宽就是被测系统的吞吐量。原创 2014-04-29 18:43:06 · 16828 阅读 · 1 评论 -
工作笔记(杂乱无章的东西)
linux下查找文件的比较常用的命令find:举例 查找某个目录下的某个文件 查找/work目录下的envsetup.sh文件的方法# find /work -name envsetup.shwhich :用于查找可执行文件(命令)的位置 # which ls/bin/ls还有一个查找某个文件中的某个字符的命令grep:#grep 'hello' hell.c原创 2014-01-10 11:32:32 · 962 阅读 · 1 评论 -
工作笔记(三)
通过参考网上资料以及同事代码而成,仅供个人参考综合描述:1. device_create(string_class, NULL, dev, "%s", STRING_DEVICE_FILE_NAME);创建一个名为STRING_DEVICE_FILE_NAME 的文件,dev/string, 并绑定设备号 dev,dev是驱动程序分配的主从设备号。这样就创建了一个绑定设备号为 d...原创 2014-02-10 09:27:02 · 625 阅读 · 0 评论 -
ntp原理
http://www.chem17.com/Tech_news/Detail/91061.html转载 2014-07-11 14:38:14 · 8550 阅读 · 0 评论 -
DHCP+与PPPoE
PPPoE的优点与缺点与其他任何技术一样, PPPoE协议也有它自身的优、缺点,关键是主要表现在哪个方向上。当然,PPPoE协议之所以能得到如此广泛的应用,它的优点还是主要的,下面分别予以介绍。1.PPPoE协议的主要优点PPPoE协议的优点主要表现在以下几个方面。安全性高在PPPoE会话中,采用对每个进程的PAP(Password Authentication Protoco转载 2014-07-15 20:57:39 · 4905 阅读 · 0 评论 -
网络编程中各种名字与地址的转换
域名系统( Domain Name System )简称DNS,主要用于主机名字与IP地址之间的映射,主机名既可以是一个简单名字,如: solaris或freebsd,也可以是一个全限定域名( Fully Qualified Domain Name, 简称FQDN ),比如: Solaris.unpbook.com。注意: 严格说来,FQDN也称为绝对名字,而且必须以一个点号结尾,不过用户转载 2014-07-22 19:13:59 · 755 阅读 · 0 评论 -
setsockopt函数使用详解
1. closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt (s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2. 如果要已经处于连接状态的soket在调用closesocket后强制关闭,转载 2014-07-22 17:36:57 · 1015 阅读 · 0 评论 -
ioctl函数
本函数影响由fd参数引用的一个打开的文件。 #include#includeint ioctl( int fd, int request, .../* void *arg */ );返回0:成功 -1:出错 第三个参数总是一个指针,但指针的类型依赖于request参数。我们可以把和网络相关的请求划分为6类:套接口操作转载 2014-07-21 11:52:09 · 629 阅读 · 0 评论 -
va_list
va_listVA函数(variable argument function),参数个数可变函数,又称可变参数函数。C/C++编程中,系统提供给编程人员的va函数很少。*printf()/*scanf()系列函数,用于输入输出时格式化字符串;exec*()系列函数,用于在程序中执行外部文件(main(int argc, char* argv[]算不算呢,与其说main()也是一转载 2014-07-19 14:56:36 · 500 阅读 · 0 评论 -
工作笔记 网络包角度看上网过程 router IP
DNS询问包,DNS响应包,TCP三次握手原创 2014-07-17 14:13:31 · 459 阅读 · 0 评论 -
PPP协议
广域网连接使用的数据链路层协议有帧中继,PPP,ATM等,其中应用最广泛的时PPP协议,PPP是Point to Point Protocol点对点协议的简称,PPP以及 生出的PPPoE,PPPoA等协议成为目前广域网连接和宽带接入中使用最多的数据链路层协议 PPP协议的优点:PPP协议提供了一种在点对点链路上封装多种网络数据报文(IP,IPX,和AppleTalk)的标准方法,与SLIP协议相转载 2014-07-17 15:00:32 · 1770 阅读 · 0 评论