- 博客(71)
- 资源 (14)
- 收藏
- 关注
原创 linux开发笔记
一:常用函数详解1FILE *popen(const char *command, const char *type);int pclose(FILE *stream);根据command命令行fork一个进程。type为r/w2unsigned long intstrtoul(const char *nptr, char **endptr, int base);把npt
2011-10-25 16:06:58 480
原创 把自己的程序变成服务[linux]
1.把自己的程序放到指定的目标下,如 /var/virus/, 假设我的程序名为 bigvirus2.添加一个服务脚本, 名为 virus 内容如下:case "$1" in start) # Start daemons. echo -n {1}quot
2011-08-09 10:34:05 1735
原创 PHP发送邮件(带附件)类
<? //error_reporting(0); date_default_timezone_set("Asia/Shanghai"); class smtp { /* Public Variables */
2011-07-28 16:38:12 3492 1
原创 PHP 非常用/常用笔记
is_callablecall_user_func_arraydebug_backtracearray_searchusortis_readablearray_filtersetlocalearray_uniqueinstanceofucwordsexten
2011-07-20 15:48:47 466
原创 一段有用的谷歌地图使用代码
Google 地图 JavaScript API 示例: 简单地址解析 <!-- var map = null; var geocoder = null; function initialize() { if (GBrowserIsCompatible()) {
2011-06-16 18:19:00 749
原创 PHP 调试栈
PHP 调戏栈 $test = ""; $trace = debug_backtrace(); $i = 1; while(isset($trace[$i])) { $files = explode("//",$trace[$i][file]); $test .= "/n/tFILE: ".$files[count($files) -
2011-06-09 19:01:00 384
转载 Linux环境把Mysql和Apache加入到系统服务里面
<br /><br />MySql加入到系统服务里面<br />cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql <br />#把msql的脚本文件拷到系统的启动目录下<br />cd /etc/init.d/<br />chkconfig --add mysql #将mysql加到启动服务列表里<br />chkconfig mysql on
2011-05-31 12:09:00 629
原创 HTACCESS子域名的设置
RewriteCond %{HTTP_HOST} ^www.sharemoney.com$ [NC]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)$ /sharemoney/$1 RewriteRule ^$ /sharemoney/
2011-05-20 16:05:00 774
转载 SOCKET操作函数
<br />1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:<br />BOOL bReuseaddr=TRUE;<br />setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));<br />2. 如果要已经处于连接状态的soket在调用closesocket后强制关闭,不经历<br />TIME_WAIT的过程:<br />BOOL bDontLing
2011-05-18 11:56:00 748
原创 SHELL总结
1.把文件mp3改成avi echo "abc.mp3" | sed 's/.*/mv & &/;s/mp3$/avi/;' | sh www.icompass.tk/w/
2011-03-02 14:11:00 451
转载 【转】NFS服务器的安装
一、NFS服务器的安装 检查linux系统中是否安装了nfs-utils和portmap两个软件包 (RHEL4系统默认已经安装了这两个软件包) 命令#rpm –q nfs-utils portmap 二、查看NFS服务器是否启动 命令#service nfs starus #service portmap status 三、如果服务器没有启动,则开启服务(默认服务下nfs没有完全开启) 命令#service nfs start #service portm
2011-01-21 23:12:00 582
原创 SUSE下开启NFS服务
<br />1, 确保已安装NFS<br />2,对服务器配置<br /> /etc/exports文件<br /> /var/data/dev_data/ *(rw,root_squash,sync,no_subtree_check)<br /> 其中*是通配置符<br /> * 可以为172.16.2.*<br />3,开启服务<br /> /etc/rc.d/nfs start<br />4,在客户机上连接NFS<br /> mount -t nfs 172.16.1.2:
2011-01-19 15:44:00 3455
原创 LINUX SHELL脚本笔记
<br />1.将下面的内容格式化<br />1 2 3 <br />4 5 6 <br />7 8 9 <br />为<br />1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />==<br />方法<br />1.awk 'BEGIN{RS="/n| "}{print $0}' file<br />2.cat 2.txt | tr ' ' '/n'<br />3.awk 'gsub(" "
2010-12-26 16:13:00 502
原创 LINUX环境变量的修改
添加INCLUDE环境变量export CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH:/path添加LIB环境变量export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/PATH
2010-12-23 17:37:00 447
原创 在linux下导入sql文件
<br />打算在linux shell下面导入sql文件,试过好些次都出现了乱码.<br />后来检查是字符集的问题:<br />需要经过下的设置:<br />set names utf8; set character_set_results=utf8;<br />如果想在一句代码里面导入sql文件.使用<br />:<br />mysql -u root -p test -password=123456 < /usr/local/apache2/htdocs/test.12.21.sql;<br
2010-12-22 15:23:00 875
原创 在linux下挂载WINDOWS共享
<br /> mount -t cifs -o username=user,password=1 //172.16.1.51/iwebcompass/ /mnt/www/
2010-12-21 17:27:00 562
原创 关于PHP自定义扩展加载的问题
最近项目需求,需要自己开发一个PHP扩展。在WIN32下载编译成功,可以在加载过程老是出问题。自己疏忽没有看准问题所在,造成这个问题托了好几天:PHP Warning: PHP Startup: ****:Unable to initialize moduleModule compiled with build ID=API20090626,TS VC6PHP compiled with build ID=API20090626,TS,VC9由于扩展我是用VC6编译的,PHP是用VC9编译的
2010-10-26 15:39:00 3594
原创 C小笔记
<br />1、数组的形参 <br /> int func(int (&array[10]); <br /> //限制形参大小为10<br />2、常量函数可改变的类成员类型<br /> mutable int a;
2010-10-11 11:25:00 508
转载 5种开源协议比较
BSD开源协议<br />BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。<br />但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。不可以用开源代码的作者/机构名
2010-08-27 16:53:00 497
原创 几步把你的程序做成服务
SC_HANDLE serviceControlManager = OpenSCManager(0, 0, SC_MANAGER_CREATE_SERVICE);//首先打开managerSC_HANDLE service = OpenService(serviceControlManager,serviceName, SERVICE_QUERY_STATUS);//然后打开服务,serviceName是服务名,不是可执行文件的名字//SERVICE_QUERY_STATUS表示查询一个服务
2010-08-26 17:46:00 1471
转载 FTP错误码列表
<br />421错误 <br />原因:同时连接该ftp的人数过多,一般ftp网站都有同时登陆人数的上限,超过该上限就会出现421错误。 <br />解决办法:在ftp软件中,把重试次数改为999,重试间隔改为60秒,一般几分钟到半小时就会连上,要注意的是,有些网站有连接时间的设定,连上后,超过一定时间不下载,就会自动断开,所以要经常去看看有没有连上。 <br /><br />530“not login" <br />原因:用户名或密码错误,有些网站每隔一段时间就要修改密码,导致原来的密码
2010-08-25 11:38:00 3124
转载 SOCKET 一方中断导致进程死掉的解决方案
<br />当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据 时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。根据信号的默认处理规则SIGPIPE信号的默认执行动作是terminate(终止、退出), 所以client会退出。<br />若不想客户端退出可以把 SIGPIPE设为SIG_IGN<br />如: signal(SIGPIPE,SIG_IGN);<br
2010-08-24 18:18:00 1987
转载 TCP建立及关闭过程
1、建立连接协议(三次握手) (1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1. (2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。 (3) 客户必须再次回应服务段一个ACK报文,这是报文段3.2、连接终止协议(四次握手) 由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发
2010-08-20 17:06:00 4054
原创 PCAP网络编程
前段时间项目用过pcap做网络编程,主要做的是截包,发包等。以前想过用SOCKET_RAW,但是socket比pcap的报文要少一层。好,下面开始记笔记 :pcap_if_t * alldevs;pcap_findalldevs(&alldevs,szErrbuf)
2010-08-18 14:57:00 1143
原创 Windows下成功安装PHP+MYSQL+APACHE
前一阵子在linux下安装LAMP,没有成功,憋来憋去,没有成功,无赖之下,放弃了。今天说在WIN下试试,其实以前在估计试过N回,也许成功过,当时没说在哪写下攻略,所以就忘了。其实这点东西,对那些整天玩PHP的不是一个小case么,可是如果你不常整,再要不是没有强大的搜索引擎,恐怕憋一辈子也憋不出来。好了。写点东西备用 :1、安装apache.****.msi 一步一步往下走.okay 安装成功后,可以试试HTML是否可用。在安装目录下有一个目录htdocs就是web文件目录2、安装PHP
2010-08-10 20:49:00 960
原创 怎么写一个简单的守护进程
本以为在程序名后面加上&让程序在后台运行,可以像守护进程那样,可是事情不会那么简单。因为这样,你的进程和console还是强相关的,退出console时,你的进程也就结束了。当然通过简单的修改代码,可以做到真正守护进程。 int i = 0; int pid = 0; if( pid = fork()) { exit(0); } else if( pid
2010-08-04 16:35:00 1379
原创 Linux 常shell (SUSE)
<br />改变Hostname<br /># sysctl -w kernel.hostname=linuxserv1
2010-08-03 16:25:00 717
原创 linux下的sniff
以前写过win32下面简单的sniff, 今天突然试试在linux下抓取http包。发现linux下与win32下有很大的不同点。下面简单总结一下:1.win下必须wsastartup,Linux直接使用2.win下不需要指定对某个网卡进行监控,linux下须指定你想要用到的网站名称3.win下使用ioctlsocket把网卡设置成混杂模式,而linux下则通过ioctl函数设置4.虽然我们收到的包就是RAW形式的,但在win下面是从ip层开始,Linux是从ether层开始的。好了,帖出我实验中的源码:#
2010-08-03 14:32:00 2991
原创 Grep 方法2
<br />文件<br />print info|msg:CISMAPSubscribeServiceRsp[81000009]<br />print info|{<br />print info| CommandID = [0x81000009]<br />print info| SequenceID = [19532]<br />print info| result = [0]<br />print info| expireTime = [20
2010-06-08 10:47:00 552
转载 用sizeof()考察类
<br />1.常规<br />char str1[] = “Hello” ;<br />char str2[5] = {'H','e','l','l','o'};<br />char str3[6] = {'H','e','l','l','o','/0'};<br />char *p1 ="Hello";<br />char *p2[]={"hello","world"};<br />int n = 10;<br />int *q =&n;<
2010-06-03 10:06:00 400
转载 setsockopt()选项改善程序的健壮性
<br />setsockopt()选项改善程序的健壮性<br /><br />1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用<br />closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:<br />BOOL bReuseaddr=TRUE;<br />setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(constchar*)&bReuseaddr
2010-06-03 10:03:00 425
转载 linux网络编程函数解析(1)--setsockopt(
setsockopt()选项改善程序的健壮性1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(constcha
2010-03-24 13:42:00 1381
转载 BM算法
BM算法是Boyer-Moore算法的简称,由Boyer和Moore提出。是一种精确字符串匹配算法(区别于模糊匹配)。BM算法采用从右向左比较的方法,同时应用到了两种启发式规则,即坏字符规则和好后缀规则,来决定向右跳跃的距离。BM算法的基本流程:设文本串T,模式串为P。首先将T与P进行左对齐,然后进行从右向左比较,如下所示:ab
2010-03-23 11:22:00 684
转载 Sunday算法
Sunday算法是DanielM.Sunday于1990年提出的一种比BM算法搜索速度更快的算法。其核心思想是:在匹配过程中,模式串并不被要求一定要按从左向右进行比较还是从右向左进行比较,它在发现不匹配时,算法能跳过尽可能多的字符以进行下一步的匹配,从而提高了匹配效率。Sunday算法思想跟BM算法很相似,在匹配失败时关注的是文本串中参加匹配的最末位字符的下一位字符。如果该字符
2010-03-23 11:06:00 1214
原创 It's Unfair
反对退还超额补助 寻求公平1.如果你收到的超额补助,那是县级政府的失误。 在收到《加州就业机会及照顾子女》(CALWORKS)福利机构通知的3个月内,如果无力偿还这些超额补助,你可以申请一个州级的公平声辩的机会。说明你不必返还这些现金补助,因为这根本就不是你的错(但这种方法并不适用于食品超额补助)2.法律程序却要求偿还 虽然工作人员不能取消这些钱,但行政法法官却能。就凭这一点,如果你真
2010-03-22 17:43:00 934
原创 10 Pretty Linux Commands
sudo !!以 root 帐户执行上一条命令。python -m SimpleHTTPServer利用 Python 搭建一个简单的 Web 服务器,可通过 http://$HOSTNAME:8000 访问。 :w !sudo tee %在 Vim 中无需权限保存编辑的文件。cd -更改到上一次访问的目录。^foo^bar将上一条命令中的 foo 替换为 bar,并执行。cp filename{
2010-03-22 17:27:00 482
转载 linux cut 命令
一个非常有用的命令,主要用来提取各种各样的数据。cut -cchars file如: -c5 提取第5个字符 -c5- 提取第5个字符以后的字符 -c1,5,12 提取多个字符,中间用“,”符号隔开 -c5-14 提取第5个字符到第14个字符间的字符http://gan.cublog.cn[ser
2010-02-25 12:14:00 2121
原创 Linux C notes (BOOK UNIX)
Chapter 1: Thread① thread functions1. pthread_self(); return current thread id2. thread existing pthread_exit(void * rval_ptr); you can get the value of rval_ptr just by pthread_join(pthread
2010-01-07 17:13:00 937
转载 poll 和 select
poll 和 select使用非阻塞 I/O 的应用程序常常使用 poll, select, 和 epoll 系统调用. poll, select 和epoll 本质上有相同的功能: 每个允许一个进程来决定它是否可读或者写一个或多个文件而不阻塞.这些调用也可阻塞进程直到任何一个给定集合的文件描述符可用来读或写. 因此, 它们常常用在必须使用多输入输出流的应用程序,而不必粘连在它们任
2010-01-05 16:22:00 736
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人