存档

文章标签 ‘linux’

[转]Linux下查看系统资源使用

2011年5月20日 没有评论

top:
主要参数
d:指定更新的间隔,以秒计算。
q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
c:显示进程完整的路径与名称。
S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。
s:安全模式。
i:不显示任何闲置(Idle)或无用(Zombie)的行程。
n:显示更新的次数,完成后将会退出to

阅读全文…

分类: Linux开发 标签: , , ,

Linux下误删除文件恢复(Ext3文件系统)

2010年11月15日 没有评论

今天又误删除了一些代码文件,还没提交到SVN的文件,郁闷,如果重写工作量非常巨大,还要找到了误删除恢复的方法。

方法请参考:http://blog.s135.com/linux_ext3_undelete/

我已经成功恢复了。哈哈

分类: Linux开发, 电脑相关 标签:

如何开发php扩展(续)

2010年11月1日 没有评论
一,使用php.ini中的配置
打开yourextension.c
定义变量保存配置值
static char MerId[7] = { 0 };
1).找到PHP_INI_BEGIN,去掉注释,添加你需要获取的的配置
PHP_INI_BEGIN()
PHP_INI_ENTRY(“signorder.MerId”, “”, PHP_INI_ALL, NULL )
PHP_INI_END()
2)在PHP_MINIT_FUNCTION(youextension)中获取配置
取消REGISTER_INI_ENTRIES的注释
REGISTER_INI_ENTRIES();
strncpy(MerId, INI_STR(“signorder.MerId”, sizeof( MerId)-1);
3)打开PHP_MSHUTDOWN_FUNCTION(youextension)中
UNREGISTER_INI_ENTRIES();的注释
4)打开PHP_MINFO_FUNCTION中DISPLAY_INI_ENTRIES();的注释
在php.ini中配置signorder.MerId=”123456″,即可
分类: PHP/Python 标签: ,

[开源]替代Visio,开源流程图绘制软件 Dia

2010年3月31日 没有评论

Dia是开放源码的流程图软件,是GNU计划的一部分
Dia使用Python开发
项目主页:http://live.gnome.org/Dia

分类: Mywitter 标签: ,

linux下获取当前运行进程的文件路径

2010年3月29日 1 条评论
#include <unistd .h>
int get_bin_pathname( char *pathname )
{
    FILE *fp = NULL;
    char _filename[1024] = {0};
 
    int _pid = getpid();
 
    sprintf(_filename, "dirname `ls -n /proc/%d/exe | awk '{if ($8==\"->\") {print $19} else {if ($9==\"->\") {print $10} else {print $11}}}'`", _pid);
    fp = popen(_filename, "r");
    fgets(_filename, sizeof(_filename), fp);
    fclose(fp);
 
    _filename[strlen(_filename)-1] = '\0';
    strcpy( pathname, _filename );
 
    return 0;
}
</unistd>

阅读全文…

分类: C/C++ 标签: ,

进程Bin1加载So1、So2,同时So2也加载So1,会有什么样的表现呢?

2010年3月14日 没有评论

我的初衷是这样的,有一个so1模块实现数据库连接池的管理,其他业务实现so2中需要用到连接池so1,又因为连接池只能有一个,所以连接池在进程Bin1中创建并管理,在so2中获取连接池,实际上就是Bin1中调用so1创建的连接池,哈哈,我的问题解决了。

我的想法是,因为在进程Bin1的一个业务中,会用到多个数据库的连接(多个不同的数据库呃),那么Bin1中创建一个session(session的代码中so1中),用当前线程id作为session的标识,在so2中的业务代码中根据线程id获取到session信息,需要获取什么类型的数据库连接由so2的具体业务确定,获取到连接之后注册到当前session,这样当业务取消或失败的时候,可以统一的abort数据库操作。

测试代码很简单,在dll1.so中是一个单例模式的类

在bin1中创建单例对象,并执行一个增加int的函数

dll2.so中只有一个函数,获取单例并返回一个int值

从结果我们可以发现,实际上dll2.so中使用的单例对象就是bin1中创建的单例对象

测试代码:下载

分类: C/C++ 标签: , ,

Chrome已发布Linux下测试版

2010年3月9日 没有评论

Google已经发布了Linux平台的Chrome浏览器,用户可以从http://www.google.com/chrome?platform=linux&hl=zh-CN下载安装。目前是测试版,适用于 Linux(Debian/Ubuntu/Fedora/openSUSE).

chrome

Linux版Chrome默认使用AR PL UKai CN字体,挺好看的

喜欢Chrome的理由正如Google自己说的那样:

高速:程序启动快,载入网页快
简单:高效、易用性的设计

阅读全文…

分类: 心情随笔 标签: , , ,

Linux动态库(.so)搜索路径(目录)设置方法

2010年3月2日 没有评论

在Linux 中,动态库的搜索路径除了默认的搜索路径外,还可通过三种方法来指定:方法一:在配置文件/etc/ld.so.conf中指定动态库搜索路径;方法二:通过环境变量LD_LIBRARY_PATH指定动态库搜索路径;方法三:在编译目标代码时指定该程序的动态库搜索路径。
众所周知,Linux动态库的默认搜索路径是/lib和/usr/lib。动态库被创建后,一般都复制到这两个目录中。当程序执行时需要某动态库,并且该动 态库还未加载到内存中,则系统会自动到这两个默认搜索路径中去查找相应的动态库文件,然后加载该文件到内存中,这样程序就可以使用该动态库中的函数,以及该动态库的其它资源了。在Linux 中,动态库的搜索路径除了默认的搜索路径外,还可以通过以下三种方法来指定。

阅读全文…

分类: 开发技术 标签: ,

linux下查找并删除

2010年2月8日 没有评论

find ./ -name *~ | xargs rm -f

删除当前目录及子目录下的所有文件名以~结尾的文件

xargs – build and execute command lines from standard input

在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是”参数列太长”或”参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。

find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。

在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;

而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。

阅读全文…

分类: 开发技术 标签: , ,

SVN命令大全

2009年12月15日 没有评论

1、将文件checkout到本地目录

svn checkout path(path是服务器上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
简写:svn co

2、往版本库中添加新的文件

svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文件)

3、将改动的文件提交到版本库

svn commit -m “LogMessage” [-N] [--no-unlock] PATH(如果选择了保持锁,就使用-no-unlock开关)
例如:svn commit -m “add test file for my test” test.php
简写:svn ci

阅读全文…

分类: 开发技术 标签: , ,