linux编程
文章平均质量分 59
penyunwudong
这个作者很懒,什么都没留下…
展开
-
ATA Over Ethernet配置(ubuntu下试验成功)
Prepare The Kernel First check if your running kernel has AoE, the config option name is CONFIG_ATA_OVER_ETH, have a look at fig1, my kernel has AoE as a module: host:/# grep ATA_OVER /boot/config-`un原创 2009-07-08 21:29:00 · 1715 阅读 · 0 评论 -
基于libcap的网络包分析问题集锦(http post方式上传文件)
1. 关于http post方式中boudaryContent-type一行中有boundary关键字,=号后面就是boundary的值,如boundary=---------------------------16541483331115---------------------------16541483331115是分隔符,分隔多个文件、表单项。其 中16541483331115原创 2012-08-06 16:06:38 · 1952 阅读 · 1 评论 -
libcap使用小结
1. 安装下载http://www.tcpdump.org/#old-releases ,我下的libpcap-1.0.0.tar.gz#tar -zxvf libpcap-1.0.0.tar.gz#cd libpcap-1.0.0#./configure#make;make install安装到默认的目录/usr/lib/和/usr/include/2. 使用使用原创 2012-08-03 17:07:21 · 5381 阅读 · 0 评论 -
基于libcap的网络包分析问题集锦续(http post方式上传文件)
8. 批量上传时,是有多个post包还是只用一个post?答:如果批量上传是以多个表单的方式,如下这种方式批量上传,通过firefox的Httpfox抓包可以看到只有一次POST,每一个文件所处不同的表单,信息在包中用boundary分隔,如问题2中所述。如果是按以下方式上传,就是一个文件打开框里可以选多个文件。这样上传方式,监听到每一个文件对应一个POST,那每一原创 2012-08-09 16:28:34 · 1507 阅读 · 0 评论 -
基于原始套接字(raw socket)的网络抓包工具
基于raw socket的网络抓包工具1. 原始套接字(raw socket)简介原始套接字可以接收本机网卡上的数据帧或者数据包,利用raw socket可以编写基于IP协议的程序。一般的TCP/UDP类型的套接字只能够访问传输层以及传输层以上的数据,而原始套接字却可以访问传输层一下的数据,所以使用raw socket既可以实现应用层的数据操作,也可以实现链路层的数据操作。1.1 基本原创 2012-08-30 11:47:32 · 13121 阅读 · 0 评论 -
基于IPC的echo server
Linux下使用共享内存和信号量来实现一个echo server。对共享内存的操作使用信号量来控制,类似于生产者和消费者的问题。下面附上server端和client端的代码。Server.c#include #include #include #include #include #include #include #include #include #i原创 2012-08-03 17:05:13 · 870 阅读 · 0 评论 -
c语言mysql编程杂记
1. MakefileINCLUDE=/usr/include/mysql/LIBS=/usr/lib/mysqlall: gcc -I$(INCLUDE) -L$(LIBS) -lmysqlclient xxx.c -o xxxclean: rm -f xxx2. mysql的头文件和库文件配置如果mysql是默认安装的,在Make原创 2012-07-27 12:27:42 · 1405 阅读 · 0 评论 -
C/C++数组的大小最大能有多大?
直接定义一个数组,如a[SIZE];这个是分配的静态空间,在栈上(局部变量)或全局静态区(全局变量)上分配的,一般栈的内存是1M到2M,所以静态分配的空间不能太大,比如如果定义a[1024*1024];运行时就会报”段错误“,遇到要申请大的空间时,就需要动态申请。原创 2012-08-10 10:00:34 · 8760 阅读 · 1 评论 -
C mysql编译链接问题
首先在源代码里面包含头文件mysql.h#include "/usr/include/mysql/mysql.h" 这样可以不用在编译选项中加-I/usr/include/mysql/直接#include "mysql.h",然后在编译选项中加入-I/usr/include/mysql/编译选项:#gcc -I/usr/include/mysql/ -L/usr/lib/mys原创 2012-07-20 10:05:03 · 976 阅读 · 0 评论 -
tcpdump使用小结
Tcpdump的常用选项-a 尝试将网络和广播地址转换成名称。-c数据包数目> 收到指定的数据包数目後,就停止进行倾倒操作。-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。-e 在每列倾倒资料上显示连接层级的文件头。-原创 2012-08-03 17:06:24 · 3491 阅读 · 0 评论 -
cgi开发遇到的问题续
1. fopen打开文件的问题Fopen以写方式打开文件时,如果只是文件名(默认当前目录),则可以打开成功;如果指定一个相对路径,如/usr/local/apache/cgi-bin/upload/filename,则打开失败。出现这个问题的原因是因为权限不够(cgi程序运行时,是apache的用户,权限有限),虽然给cgi-bin更改了权限(chmod o+w /usr/local/apac原创 2012-07-13 14:11:02 · 2286 阅读 · 0 评论 -
cgi开发遇到的问题
使用xxx代码在linux上编译运行,访问xxx.html时,上传文件出现错误500 Server Internal Error,查看apache错误日志error.log看到错误:Premature end of script headers网上搜索这个错误,发现一般是文件权限问题,于是配置httpd.conf的文件权限确保allow在deny前,allow from all原创 2012-07-12 09:13:54 · 892 阅读 · 0 评论 -
c语言开发cgi学习笔记
初学cgi,实现一个简单的网页,能够完成上传、下载、删除、浏览目录的功能。工欲善其事必先利其器,首先要了解一下http协议,HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。写cgi程序往往需要分析网络包,为此介绍一利器:httpwatch,这个是ie的一个插件,只需要选择相应的原创 2012-07-12 09:12:13 · 1261 阅读 · 0 评论 -
SSH Telnet 终端退出后保持程序继续运行
http://blog.zhangjianfeng.com/article/718 你是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的转载 2011-10-11 16:42:46 · 1518 阅读 · 0 评论 -
kvm测试环境搭建(包括kvm网络桥接配置)
<br />kvm测试环境搭建<br />1. 操作系统:ubuntu 9.10 64bit <br />2. Kernel module:<br />下载kvm-kmod-2.6.32.16然后编译;<br />sudo insmod /root/kvm-kmod-2.6.32.16/x86/kvm.ko<br />sudo insmod /root/kvm-kmod-2.6.32.16/x86/kvm-intel.ko<br />3. Kvm依赖文件包:<br />gcc原创 2011-05-13 10:40:00 · 4758 阅读 · 0 评论 -
linux获取目录下文件大小的问题
代码如下:void list_dir(char *path){DIR *dir;struct dirent *entry;struct stat stat_buf;if ((dir = opendir(path)) == NULL){printf("cannot open dir:%s\n", path);return;}while ((entry =原创 2012-09-02 17:16:56 · 2558 阅读 · 0 评论