- 博客(32)
- 资源 (20)
- 问答 (4)
- 收藏
- 关注
原创 fstat()函数
名称::fstat功能:获得文件或共享内存区的信息头文件:#include #include #include 函数原形:int stat(const char *file_name,struct stat *buf);参数:file_name 文件名buf stat结构返回值:成功返回0,出错返
2014-11-08 12:45:59 1210
原创 shm_unlink()函数
名称::shm_unlink功能:删除一个共享内存区头文件:#include 函数原形:int shm_unlink(const char *name);参数:name 共享内存区的名字返回值:成功返回0,出错返回-1 shm_unlink函数删除一个共享内存区对象的名字,删除一个名字仅仅防止后续的open,mq_o
2014-11-08 12:44:13 3149
原创 shm_open()函数
名称::shm_open功能:打开或创建一个共享内存区头文件:#include 函数原形:int shm_open(const char *name,int oflag,mode_t mode);参数:name 共享内存区的名字cflag 标志位mode 权限位返回值:成功返回0,出错返回-1oflag参数必须含有O_R
2014-11-08 12:43:06 7382 1
原创 ftruncate函数
函数功能:改变文件大小相关函数:open、truncate表头文件:#include 函数原型:int ftruncate(int fd, off_t length)函数说明:ftruncate()会将参数fd指定的文件大小改为参数length指定的大小。参数fd为已打开的文件描述词,而且必须是以写入模式打开的文件。如果原来的文件件大小比参数length大,则超过的
2014-11-08 12:38:39 665
转载 getopt和getopt_long函数
转载http://blog.csdn.net/cashey1991/article/details/7942809平时在写程序时常常需要对命令行参数进行处理,当命令行参数个数较多时,如果按照顺序一个一个定义参数含义很容易造成混乱,而且如果程序只按顺序处理参数的话,一些“可选参数”的功能将很难实现。在Linux中,我们可以使用getopt、getopt_long、getopt_lon
2014-11-08 12:37:59 440
原创 mmap函数
先声明,本文涉及到的知识是之前搜集到的,现在整理出来分享大家,虽然打上原创的tag,但还是向原创致敬!如果涉及到侵权的问题,请联系我,我会及时更改!mmap函数是unix/linux下的系统调用,来看《Unix Netword programming》卷二12.2节对mmap的介绍: The mmap function maps either a file or a Posix s
2014-11-08 12:35:58 436
转载 Libpcap库主要函数
Libpcap库主要函数以下摘自:http://blog.csdn.net/zjl_1026_2001/archive/2008/03/21/2202436.aspx函数名称:pcap_t *pcap_open_live(char *device, int snaplen, int promisc, int to_ms, char *ebuf) 函数功能:获得用于捕获网
2014-11-08 12:32:24 424
原创 “#if 0/#if 1 ... #endif”的作用
先声明,本文涉及到的知识是之前搜集到的,现在整理出来分享大家,虽然打上原创的tag,但还是向原创致敬!如果涉及到侵权的问题,请联系我,我会及时更改!1、先说“#if 0/#if 1 ... #endif”的作用。我们知道,C标准不提供C++里的“//”这样的单行风格注释而只提供“/* */”这样的块注释功能,我们通常使用它写代码中说明性的注释文字(注释作用)以及在调试时关闭某段代码
2014-11-08 12:29:12 4589 1
原创 数组指针和指针数组
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a;
2014-11-08 12:28:59 353
原创 IP地址、子网掩码、网关的关系?
先声明,本文涉及到的知识是之前搜集到的,现在整理出来分享大家,虽然打上原创的tag,但还是向原创致敬!如果涉及到侵权的问题,请联系我,我会及时更改!互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。IP地址在设计时就考虑到地址分配的层次特点,将每个IP地址都分割成网络号和主机号两部分,以便于IP地址的寻址操作。 IP地址的网络号和主机号各是多少位呢
2014-11-08 12:27:22 872
原创 RedHat、Fedora、Centos如何安装软件
centos如何安装软件1、rpm包的安装:rpm -ivh 包名 安装一个包安装参数 --force 即使覆盖属于其它包的文件也强迫安装 --nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。rpm -Uvh 包名 升级一个包rpm -e 包名 移走一个包rpm -q 包名 查询一个包是否被安装rpm -
2014-11-08 12:25:39 1080
原创 Ubuntu 安装程序
ubuntu下安装程序的三种方法在ubuntu当中,安装应用程序我所知道的有三种方法,分别是apt-get,dpkg安装deb和make install安装源码包三种。下面针对每一种方法各举例来说明。1、apt-get方法apt-get install xxx 安装xxx 。如果带有参数,那么-d 表示仅下载 ,-f 表示强制安装 apt-get remove
2014-11-08 12:22:28 524
原创 高并发IO技术
使用支持高并发网络I/O的编程技术(epoll技术强烈推荐)在Linux上编写高并发TCP连接应用程序时,必须使用合适的网络I/O技术和I/O事件分派机制。可用的I/O技术有同步I/O,非阻塞式同步I/O,以及异步I/O。在高TCP并发的情形下,如果使用同步I/O,这会严重阻塞程序的运转,除非为每个TCP连接的I/O创建一个线程。但是,过多的线程又会因系统对线程的调度造成巨大开销。因此,在
2014-11-08 12:19:31 2334
原创 联想键盘组合键
以个人为例,联想扬天台式机,联想自带键盘,相当蛋疼的是,键盘上的F1~F12被联想设置成了功能键,想单纯使用F1等功能,竟然要配合使用Fn键, 对于做开发的来说就相当蛋疼了,于是乎,必须恢复到“正常功能”解决办法,联想早就想到这么个问题, 在官网上提供了驱动程序,以楼主个人电脑为例,对应下载的程序叫做“Keyboard.exe”, 按照提示按照后,系统开始菜单会出现“Lenovo Lo
2014-11-08 12:15:29 921
原创 Cannot assign requested address 问题
先声明,本文涉及到的知识是之前搜集到的,现在整理出来分享大家,虽然打上原创的tag,但还是向原创致敬!如果涉及到侵权的问题,请联系我,我会及时更改!遇见这样的问题是在客户端大量向服务器发起connect连接时出现的,字面意思是“不能分配请求的地址”。两种解决方案。1、设置TIME_WAIT客户端频繁的连服务器,由于每次连接都在很短的时间内结束,而端口释放较慢,导
2014-11-08 12:13:28 1105
原创 ubuntu panel显示异常
Ubuntu 10.04的panel经常会发生一些怪异到现象,比如图标错位,显示不全,不显示panel等。ctrl+alt+F1 进入终端后, 输入命令 $ killall gnome-panel 就可以让panel重启,显示就恢复正常了。
2014-11-08 12:12:23 868
原创 atoi陷阱
字符串转换为数字,小心陷阱。最常用的就是atoi函数,那么在Linux下执行下面函数char *str = "123456789123456789123456789"atoi(str);得到什么结果,肯定不是123456789123456789123456789!那么问题来了。atoi 在Windows下使用,没什么问题。但是一移植到Linux下,问题就出来了,发现得到
2014-11-08 12:10:17 993
原创 epoll常用函数
先声明,本文涉及到的知识是之前搜集到的,现在整理出来分享大家,虽然打上原创的tag,但还是向原创致敬!如果涉及到侵权的问题,请联系我,我会及时更改!epoll用到的所有函数都是在头文件sys/epoll.h中声明1、int epoll_create(int size); 生成一个 Epoll 专用的文件描述符,其实是申请一个内核空间,用来存放你想关注的 socket f
2014-11-08 12:09:28 497
原创 Linux tcp参数设置
先声明,本文涉及到的知识是之前搜集到的,现在整理出来分享大家,虽然打上原创的tag,但还是向原创致敬!如果涉及到侵权的问题,请联系我,我会及时更改!tcp_syn_retries :INTEGER默认值是5对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。不应该大于255,默认值是5,对应于180秒左右时间。(对于大负载而物理通信良好的网络而言,这个值偏高,可修改
2014-11-08 12:06:34 823
原创 Linux 如何高并发socket TCP
测试程序是这样的,在Linux环境下,客户端不断地向服务器发起TCP连接, 在系统默认情况下(前提是你的系统没有问题,并且没有更该系统配置),当客户端socket建立了1000多个后,会socket 失败!原因在于,具体是说:单一进程同时打开文件数量(这里可以理解一个套接字就是一个文件)是有上限的!要受到系统的打开文件数量、栈大小、端口数 这三个的限制。以一个客户端向服务器发起5万条t
2014-11-08 12:06:16 1144
原创 linux 获取系统时间(两种办法,两种精度)
1.、写时间到文件里 void get_time(){time_t now;struct tm *timenow;FILE *fp;char time_buffer[100] = {0};time(&now);timenow = localtime(&now);fp = fopen("./time_1.txt", "a+");
2014-11-08 11:55:09 2519
原创 linux 计算内存使用率
1、通过定期采集/proc文件系统内的meminfo文件来获取当前内存使用情况:proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并
2014-11-08 11:54:16 3575
原创 Linux 手动计算CPU使用率
目前linux统计cpu利用率时,所用到的信息,大多数是从 /proc/stat中获得,其中信息大致如下:打开/proc/stat 后会看到类似如下信息,不同Linux略微会有不一样。cpu 432661 13295 86656 422145968 171474 233 5346cpu0 123075 2462 23494 105543694 16586 0 4615cpu1 11
2014-11-08 11:52:18 552
原创 C语言返回结构体
be代码如下,该代码可以通过gcc的编译,即使我指定了 -std=c89:#include #include #include typedef struct St{ int id; }St; St* returnPointer(void) { St* p=calloc(1,sizeof(St));
2014-11-08 11:45:32 809
原创 list 常用函数
STL所有的东西,容器、算法、和允许算法工作在容器中的元素上的iterator。 算法以合适、标准的方法操作对象,并可通过iterator得到容器精确的长度。一旦做了这些,它们就在也不会“跑出边界”。1.定义list<string> Milkshakeslist<string>::iterator MilkshakeIterator;//定义指针 ++Milkshak
2014-11-08 11:44:55 1647
原创 struct 和 typedef struct 区别
struct{成员表列}变量名表列1,变量名表列2;(变量名表列1,变量名表列2)这2个变量名怎么理解? 一个是声明一个结构体的原始用法,一个是把结构体取了个别名。例如struct list{ int a; char c; stuct list *next;};(注意这个分号不能少)这个结构体的类型名是struct li
2014-11-08 11:36:13 400
原创 #ifdef(#ifndef), #if, #else, #endif
#ifdef(#ifndef),#else,#endif,#if等都属于预处理条件编译的命令。预处理就是在进行编译的第一遍词法扫描和语法分析之前所作的工作。说白了,就是对源文件进行编译前,先对预处理部分进行处理,然后对处理后的代码进行编译。这样做的好处是,经过处理后的代码,将会变的很精短。 1、 先来看一下,一个简单的应用,就是在头文件中使用,#ifndef #define
2014-11-08 11:34:15 454
原创 #define 后面跟 \
以 \ 结束的换行表示硬换行或者机械换行当用define 定义一个多行的宏时,必须在宏定义内容中,用 \ 作为一行结束,否则编译器不知道多行宏定义在哪一行为止
2014-11-08 11:31:36 1189
原创 修饰符extern修饰变量或者函数(转)
在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。1. extern修饰变量的声明。举例来说,如果文件a.c需要引用b.c中变量int v,就可以在a.c中声明extern int v,然后就可以引用变量v。这里需要注意的是,被引用的变量v的链接属性必须是外链接(external)的,也就是说a.c要引用到v,不只是取决于在a
2014-11-08 11:27:53 4122
原创 SDN 、OpenFlow、Ryu的关系
1、SDN绝不等于openflow,OpenFlow仅仅是SDN中控制器控制转发面设备的协议而已,控制器本身的架构、网络拓扑算法、运行环境、编程工具,以及和上层应用的集成技术都是SDN的一部分,并且是架构上更为核心的部分。2、业界选择了OpenFlow协议,并围绕其来建立一系列的操作系统、软件、编译器、外设框架和实现。那么,业界为什么没有选择IETF定义的控制转发分离协议FORCES(
2014-11-08 11:21:53 4930
GB2312所有汉字doc文件
2017-09-26
GB2312所有汉字+分区表示
2017-09-26
Eigenface用MATLAB实现
2016-12-20
疯狂Java实战演义(PDF和源代码)
2014-08-12
Linux 中,make install后哪个文件可以删除
2015-04-13
linux 库中,这三个有什么不同
2015-04-13
Qt 疑问 几个概念有点不清楚
2015-04-13
Linux环境下进程中断的原因
2014-12-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人