开源知识
文章平均质量分 57
wei801004
爱好篮球,喜欢上网, 陶醉在儿子的快乐成长之中。
展开
-
JAVA中native方法调用
在java中native是关键字。它一般在本地声明,异地用C和C++来实现。它的声明有几点要注意:1)native与访问控制符前后的关系不受限制。2)必须在返回类型之前。3)它一般为非抽象类方法。4)native方法在异地实现,象抽象方法一样,所以没有方法体,以分号结束。如下列5转载 2011-08-05 10:39:20 · 9256 阅读 · 1 评论 -
多进程服务器中,epoll的创建应该在创建子进程之后
看我的测试代码,似乎应该是在创建子进程之后创建epoll的fd,否则程序将会有问题,试将代码中两个CreateWorker函数的调用位置分别调用,一个在创建epoll fd之前,一个在之后,在调用在创建之前的代码会出问题,在我的机器上(linux内核2.6.26)表现的症状就是所有进程的epoll_wait函数返回0, 而客户端似乎被阻塞了: 服务器端:#include #incl转载 2009-06-12 15:32:00 · 1586 阅读 · 0 评论 -
GDB调试 ---改变程序的执行
一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分支。 一、修改变量值 修改被调试程序运行时的变量值,在GDB中很容易实现,使用GDB的print命令即可完成。如:转载 2009-06-12 14:02:00 · 1202 阅读 · 0 评论 -
有关Linux下父子进程内容
1 . 父进程可以利用wait()/waitpid()等待子进程的结束,避免僵死子进程的产生,当然也可以循环的wait()/watipid()来等待所有的子进程的结束;最好可以用法是,在子进程结束时,会向父进程发送的SIGCHLD信号,父进程通过signal()/sigaction()来响应子进程的结束.具体实例可参考:TestFork4.c,关键代码如下:signal(SIGCH转载 2009-06-12 13:18:00 · 6375 阅读 · 0 评论 -
GDB 内存断点
内存断点可以帮助我们查找一些内存的问题, 而内存问题往往都是比较棘手的问题。所以掌握GDB的内存调试还是很有用的,下来我们就开始GDB的内存断点之旅。 我们通过一个程序来学些这个方法: 注意涉及的指令就是rwatch、watch和awatch,分别表示读、写、读写。需要注意的是我用的这个版本直接用地址是断不下来的,必须用*(char*)之类来进行强制类型转换,不知道其它原创 2009-06-09 10:20:00 · 7907 阅读 · 0 评论 -
linux 各种信号及其含义
名称 默认动作 说明 SIGHUP 终止进程 终端线路挂断SIGINT 终止进程 中断进程SIGQUIT原创 2009-06-09 14:55:00 · 3167 阅读 · 0 评论 -
linux 编译过程中产生的警告。
警告:检测到时钟错误。您的创建可能是不完整的。处理办法: find . -type f -exec touch {} /; 运行上面命令后在编译,警告就消除了。原创 2009-06-08 15:09:00 · 1037 阅读 · 0 评论 -
GDB 命令详细解释
Linux中包含有一个很有用的调试工具--gdb(GNU Debuger),它可以用来调试C和C++程序,功能不亚于Windows下的许多图形界面的调试工具。和所有常用的调试工具一样,gdb提供了以下功能: # 监视程序中变量的值 # 在程序中设置断点 # 程序的单步执行在使用gdb前,必须先载入可执行文件,因为要进行调试,文件中就必须包含调试信息,所以在用gcc或cc转载 2009-06-09 10:24:00 · 27998 阅读 · 0 评论 -
Linux Error Code
124 EMEDIUMTYPE Wrong medium type 123 ENOMEDIUM No medium found 122 EDQUOT Disk quota exceeded 121 EREMOTEIO Remote I/O error 120 EISNAM Is a named type fil原创 2009-06-08 18:06:00 · 3890 阅读 · 0 评论 -
Epoll 使用中的疑惑
最近在使用epoll中有点疑惑, epoll的发送事件是怎么触发的呢? epoll的事件监控线程中也用来发送数据会不会导致事件的丢失呢? 希望熟悉epoll的朋友给点解释,谢谢!原创 2009-06-09 09:58:00 · 798 阅读 · 0 评论 -
EPOLL 边缘触发学习
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#define __FD_S转载 2009-06-06 09:13:00 · 11016 阅读 · 3 评论 -
SecureCRT下传输文件
SecureCRT可以使用linux下的zmodem协议来快速的传送文件。设置如下:设置上传和下载的默认目录:options-->session options-->file transfer 下可以设置上传和下载的目录剩下的只要在用SecureCRT登陆linux终端的时候:1)发送文件到客户端:sz filenamezmodem接收可以自行启动.2)从客户端上传文件到l转载 2009-07-13 15:40:00 · 1596 阅读 · 0 评论 -
Linux进程创建,子进程对父进程资源“写时拷贝”
Linux进程创建,子进程对父进程资源“写时拷贝”的证明 传统的fork()系统调用直接把所有的资源复制给新创建的进程。这种实现过于简单并且效率低下,因为它拷贝的数据或许可以共享(Thisapproach is significantly na?ve and inefficient in that it copies muchdata that might otherwise原创 2009-06-12 11:34:00 · 1884 阅读 · 0 评论 -
Linux 读写锁
在线程同步系列的第一篇文章里已经说过, 读写锁是因为有3种状态, 所以可以有更高的并行性.1. 特性: 一次只有一个线程可以占有写模式的读写锁, 但是可以有多个线程同时占有读模式的读写锁. 正是因为这个特性,当读写锁是写加锁状态时, 在这个锁被解锁之前, 所有试图对这个锁加锁的线程都会被阻塞.当读写锁在读加锁状态时, 所有试图以读模式对它进行加锁的线程都可以得到访转载 2009-06-17 18:08:00 · 1562 阅读 · 0 评论 -
ifconfig 命令详解
ifconfig 用法详解ifconfig 配置网络接口的工具介绍ifconfig是一个用来查看、配置、启用或禁用网络接口的工具,这个工具极为常用的。可以用这个工具来临时性的配置网卡的IP地址、掩码、广播地址、网关等。也可以把它写入一个文件中(比如/etc/rc.d/rc.local),这样系统引导后,会读取这个文件,为网卡设置IP地址1 ifconfig 查看网络接口状态原创 2009-12-24 10:54:00 · 12736 阅读 · 0 评论 -
vmstat iostat
此文讲解vmstat和iostat的具体用法,以及通过这个用法如果快速诊断系统故障,进而优化系统 正文:用vmstat监视内存使用情况 vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进原创 2009-12-24 10:53:00 · 1354 阅读 · 0 评论 -
iostat vmstat命令详解
此文讲解vmstat和iostat的具体用法,以及通过这个用法如果快速诊断系统故障,进而优化系统 正文:用vmstat监视内存使用情况 vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。 vms原创 2009-12-17 13:50:00 · 2013 阅读 · 0 评论 -
压缩解压缩
tar命令[root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 ....参数:-c :建立一个压缩文件的参数指令(create 的意思);-x :解开一个压缩文件的参数指令!-t :查看 tarfile 里面的文件!特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。-z :是否同时具有 gzip 的属性原创 2009-12-09 20:20:00 · 841 阅读 · 0 评论 -
tcpdump 使用方法
第一种是关于类型的关键字,主要包括host,net,port, 例如 host210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明 202.0.0.0是一个网络地址,port23 指明端口号是23。如果没有指定类型,缺省的类型是host.第二种是确定传输方向的关键字,主要包括src , dst ,dstor src, dst and s原创 2009-10-29 20:53:00 · 4014 阅读 · 0 评论 -
ps命令实例讲解
检索进程:psps这个命令最常见的,我们经常用它来检索进程,但在我认真阅读过ps的man文档之前,我使用的最多的选项是aux,用grep匹配出特定的进程,然后再处理它,现在看来这种做法非常笨拙,呵呵!其实我们完全可以用pgrep快速的完成这一串操作。今天暂不讲解pgrep的用法,先让我们更多的了解一下ps,首先ps支持三种选项格式:unix options这种选项通常需要在其前加横杠-,多值可原创 2009-10-22 10:36:00 · 1665 阅读 · 0 评论 -
cannot restore segment prot after reloc: Permission denied 解决方法
编辑/etc/selinux/config,找到这段:# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive原创 2009-07-03 14:12:00 · 18766 阅读 · 8 评论 -
Linux 压缩解压
大致总结了一下linux下各种格式的压缩包的压缩、解压方法。但是部分方法我没有用到,也就不全,希望大家帮我补充,我们将随时修改完善,谢谢! .tar 解包: tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ----------------------------------原创 2009-07-03 17:44:00 · 929 阅读 · 0 评论 -
共享内存
mmap()系统调用使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以向访问普通内存一样对文件进行访问,不必再调用read(),write()等操作。注:实际上,mmap()系统调用并不是完全为了用于共享内存而设计的。它本身提供了不同于一般对普通文件的访问方原创 2009-06-24 11:23:00 · 892 阅读 · 0 评论 -
linux 32位向64位的移植常见问题
1. 数据截断:由于long类型变量的运算(赋值、比较、移位等)产生。long定义在x86上为32bits,而在ia64上为64bits.容易在与int型变量运算时出现异常。处理方法:尽量避免不同类型变量间的运算,避免将长度较长的变量赋值到较短的变量中,统一变量长度可以解决这个问题。简单的对于32位转移到64位可以将所有long定义转换为int定义。2.原创 2009-08-26 16:22:00 · 1232 阅读 · 0 评论 -
消息队列 posix message queue
消息队列 posix message queue 消息队列可以认为是一个链表。有足够写权限的线程都可以往队列中防止消息, 有足够读权限的县城都可以从队列中取走消息, 每个消息是一个记录, 它由发送者赋予一个优先级。在某个进程往一个队列写入消息之前, 并不需要另外某个进程在该队列上等待消息的到达。一个进程可以往某个 队列写入一些消息后终止, 让另外一原创 2009-06-19 17:54:00 · 1830 阅读 · 0 评论 -
mysql 安装和简单应用
1. yum install mysql2. yum install mysql-server yum install mysql-devel3. /etc/rc.d/init.d/mysql restart4. mysql -u root5. grant 添加用户格式:grant select on 数据库.* to 用户名@登录主机 identified原创 2009-07-13 13:30:00 · 775 阅读 · 0 评论 -
ldconfig 用法说明
NAME /sbin/ldconfig - configure dynamic linker run time bindingsSYNOPSIS /sbin/ldconfig [ -nNvXV ] [ -f conf ] [ -C cache ] [ -r root ] directory ... /sbin/ldconfig -l [ -v原创 2008-10-17 10:28:00 · 5158 阅读 · 0 评论 -
文件夹操作命令
mkdir:创建文件夹rmdir:删除文件夹(只能删除空文件夹)rm -rf 文件夹名称(可以删除非空文件夹)原创 2007-09-04 10:07:00 · 682 阅读 · 0 评论 -
sed 命令替换多个文件中的某个字符串
sed -i "s/srcString/dstString/g"|grep srcString -rl FileDirexample:sed -i "s/1111/2222/g" |grep 1111 -rl /home/wangliwei原创 2007-09-03 17:57:00 · 1278 阅读 · 0 评论 -
linux中的定时器命令--crontab
名称 : crontab 使用权限 : 所有使用者 使用方式 : crontab [ -u user ] file crontab [ -u user ] { -l | -r | -e } 说明 : crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user转载 2007-05-29 15:20:00 · 1514 阅读 · 1 评论 -
linux 编写动态库(转)
Linux动态链接库编程入门 动态链接库是一种通用的软件组件技术,是多种操作系统中提供基本服务的方式。比如Win32内核就是3个DLL文件构成。这种技术在Linux操作系统下也有对应的实现,就是Linux标准对象Standard Ojbect,对应的文件扩展名为.so。 下面通过一个简单的例子开始介绍Linux标准对象。 我们的标准对象文件含有一个函数,不需要声明export导出符号,只需要编原创 2007-07-27 13:27:00 · 3376 阅读 · 1 评论 -
linux 常用命令(转)
linux目录架构/ 根目录/bin 常用的命令 binary file 的目錄/boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内/boot/grub/menu.lst GRUB设置/boot/vmlinuz 内核/boot/initrd 核心解壓縮所需 RAM Disk/dev 系统周边设备/etc 系统相关设定文件/etc/DIR_COLORS 设定颜色/etc/HOS原创 2007-07-19 12:49:00 · 730 阅读 · 0 评论 -
linux errno code
124 EMEDIUMTYPE Wrong medium type 123 ENOMEDIUM No medium found 122 EDQUOT Disk quota exceeded 121 EREMOTEIO Remote I/O error 120 EISNAM Is a named type file 119 E原创 2007-03-05 14:10:00 · 12071 阅读 · 2 评论 -
linux下抓包命令--tcpdump的使用
例:tcpdump host 172.16.29.40 and port 4600 -X -s 500 tcpdump采用命令行方式,它的命令格式为: tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ] [ -i 网络接口 ] [ -r 文件名] [ -s snaplen ] [ -T 类型 ] [ -w 文件名转载 2007-03-02 09:37:00 · 1597 阅读 · 0 评论 -
简单的makefile
makefile程序的一个简单应用:///class Test test.h#include using namespace std;class Test{public:Test(void) {}~Test(void) {}void printf() { cout}///main.cpp#include "test.h"#include using namespace std;int m原创 2006-07-31 10:01:00 · 1019 阅读 · 0 评论 -
Linux入门
Linux中的常用的命令运行环境:在虚拟机内安装的linuxsu root;yum install gcc: 安装gcc编译器(可以编译C程序)yum install gcc-c++:安装后才可以编译C++程序yum install gdb:安装调试工具gdb编译执行一个简单的程序test.cpp。#include using namespace std;int main(){coutre原创 2006-07-14 17:27:00 · 1219 阅读 · 0 评论 -
linux find命令
1 【 转载】Linux中文件查找技术大全 因为要找个东转载 2006-11-15 12:23:00 · 3175 阅读 · 1 评论 -
Linux下用Valgrind检测内存泄露
参考文章:http://colding.bokee.com/4223264.html原创 2006-11-13 15:19:00 · 1643 阅读 · 0 评论 -
文件复制命令
Linux文件的复制、删除和移动命令 cp命令 该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大。 语法: cp [选项] 源文件或目录 目标文件或目录 说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。该命令的各选项含义如下:- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录原创 2007-09-04 10:20:00 · 878 阅读 · 0 评论 -
编译firefox
准备工作: 1. VS2005 2. firefox 源码(http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.8/source/) 3. 编译工具(http://ftp.mozilla.org/pub原创 2007-11-07 18:28:00 · 1840 阅读 · 0 评论