坚信科学,分享技术

Tag Archives: linux

普及帖:Linux 下编译C程序

GNU 编译器集(其前身为GNU C 编译器)诞生于1987年。当时Richard Stallman(GNU 项目的创办人)想要创建一个编译器,它可以满足他定义的“自由软件”概念,并可用来编译 GNU 项目发布的其他软件。GNU C 编译器迅速在自由软件社区中流行开来,而且以其健壮性和可移植性而闻名。它已成为许多集成开发工具的基础,被世界各地的发行商应用在 Linux 和其他操作系统之上。   GCC 已不再是主要针对GNU项目自身的软件的小型 C 语言编译器了。如今,它已支持了许多不同的语言,包括 C、C++、Ada、Fortran、Objective C,甚至还有Java。事实上,现代 Linux 系统除了可以自豪地炫耀那些由 GNU 工具直接支持的语言以外,它还支持大量其他语言。日益流行的脚本语言 Perl、Python 和 Ruby,以及正在不断发展的mono 可移植C#实现的确有助于冲淡人们对 Linux 编程的传统看法,但这完全是另外一个问题了。 Linux 内核和许多其他自由软件以及开放源码应用程序都是用 C 语言编写并使用 GCC 编译的。 1. 编译单个源文件 为了进行测试,你可以创建“Hello World”程序: #include …

Continue reading

Posted in linux | Tagged , | 3 Comments

坐阵杭州淘宝

照片欠奉。 涉及到技术转型,看到一句话,共勉。 如果程序语言是宗教,那么: C语言是犹太教,Java是基督教,c++是回教. C#是摩門教,LISP是禪宗佛教,PHP是Cafeteria基督教,Haskell是道教,Erlang是印度教,Perl是伏都教,Lua是巫术,Ruby是新异教主义,Python是世俗人文主义,COBOL是古异教主义,APL是山达基教,Visual Basic是撒旦教。

Continue reading

Posted in 生活备份 | Tagged , , | 4 Comments

究竟什么是TSRMLS_CC?

翻译:54chen.com 原文地址:http://blog.libssh2.org/index.php?/archives/22-What-the-heck-is-TSRMLS_CC-anyway.html 如果你曾经做过php内核或者是php扩展方面的工作,你一定见到过这个到处都是的结构,但是却从来没有人提起过它。知道这是什么的人典型回答不知道的人都会这样说:“不用管它是什么,只需要在这里、这里还有这里用,如果编译器说少一个tsrm_ls,就加一个...”。这样回答并非都是因为这个人懒惰(的确是有一点点懒),其实那只是在说引擎甚至可以不管这个神奇的值在简化什么,这是因为一个新入门的扩展开发者知道它的结构没有什么益处。这信息就像奶牛的意见一样,没关系,就是牛叫而已。 既然我喜欢听自己喋喋不休的无意义主题(这个月我已经少写很多博客了),我想我得弥补这一主题,看看会不会有人通过他能领会什么。你可以责怪Lukas(Lukas Smith 是 PEAR DB 的主要作者应该是这个Lukas,译者注),他让我一直在planet-php.net上。 术语 TSRM Thread Safe Resource Manager - 这是一个经常被忽视的层面,就会有也是很少被讨论到,在你的PHP源代码包中,它被隐藏在/TSRM目录中。默认情况下,TSRM 层只在编译需要它的SAPI的时候才会打开(例如apache2-worker)。所有的在win32下编译的SAPI都会有TSRM层而不会管它们是否需要。 ZTS Zend Thread Ssafety -通常情况下,与TSRM有相同的用处。具体

Continue reading

Posted in php, 资料文档 | Tagged , , , | 10 Comments

sscanf函数的各种用法

sscanf是一个运行时函数,原形很简单:  int sscanf(  const char *buffer,  const char *format [,  argument ] ...  );  它强大的功能体现在对format的支持上。  sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。      char str[512] = ;    sscanf("123456 ", "%s", str);    printf("str=%s", str); 输出 str=123456     sscanf("123456 ", "%4s", str);    printf("str=%s", str); 输出 str = 1234   sscanf("123456 abcdedf", "%[^ ]", str);    printf("str=%s", str); 输出 str=123456 (遇到空格为止)   sscanf("123456abcdedfBCDEF", "%[^A-Z]", str);    printf("str=%s", str); 输出 str=123456abcdef (遇到指定字符为止) …

Continue reading

Posted in linux, php | Tagged , , , | Leave a comment

Web压力测试工具介绍

1.http_load 下载地址:http://www.acme.com/software/http_load/ 实际运行: bash# http_load -rate 5 -seconds 10 urls -parallel 简写-p :含义是并发的用户进程数。 -fetches 简写-f :含义是总计的访问次数 -rate 简写-r :含义是每秒的访问频率 -seconds简写-s :含义是总计的访问时间 urls.txt 是一个url 列表,每个url 单独的一行;不可以直接跟一个url,有些博客主说的可以跟一个url是错误的说法。 49 fetches, 2 max parallel, 289880 bytes, in 10.0145 seconds 5916 mean bytes/connection 4.89274 fetches/sec, 28945.1 …

Continue reading

Posted in linux, php | Tagged , , | 3 Comments

配置一个使用plproxy的PostgreSQL数据库集群

本文只有一个连接 没有那么多内容 http://www.pgsqldb.org/mwiki/index.php/配置一个使用plproxy的PostgreSQL数据库集群

Continue reading

Posted in linux | Tagged , | 1 Comment

plproxy部署手册

安装过程如下: 1 安装plproxy:下载plproxy.安装完成plproxy后,运行{$PATH_TO_PG}/share/contrib/plproxy.sql 2 建立数据库_proxy; 3 建立plpgsql语言; 4 在_proxy中建立模式plproxy;分配权限 grant all on schema plproxy to <用户>。 5 建立pgcluster;  --以上步骤sql语句: CREATE FUNCTION plpgsql_call_handler () RETURNS language_handler AS '/usr/local/pgsql/lib/plpgsql.so' LANGUAGE C; CREATE FUNCTION plpgsql_validator(oid) RETURNS void AS '/usr/local/pgsql/lib/plpgsql.so' LANGUAGE C; CREATE TRUSTED …

Continue reading

Posted in linux | Tagged , | 1 Comment

使用plproxy和pgbouncer完成分布式处理

  plproxy和pgbouncer都是skype开发的基于postgresql的开源应用;前者主要用于完成分布式计算,后者主要充当数据库连接池;它们的主页在[plproxy]和[pgbouncer]  plproxy的特性   使用plproxy类似于RPC;假设我们有A,B两台数据库,在A在创建一个plproxy的function,并指定一些参数和返回值,就可以在B上也创建一个同名的pgsql函数,并指定同样的参数和返回值;这样,在A上调用该function,通过适当地声明,就可以实现在B上调用该函数的同样效果,但结果是在A上返回的; plproxy还能合并多个结点服务器上返回的结果集,就像是这些结果是由一个函数产生的一样,方便客户端操作; plproxy可以指定同时在所有结点服务器上执行操作,或者只在指定的几台服务器上操作,或者只在任意一台结点服务器上执行操作; plproxy默认是自动提交的;也就是说,只要目标服务器的函数执行成功了,它就会提交;这样有可能造成各个结点数据库的状态并不一致;因为可能有的结点执行成功了,有的没有执行成功,但plproxy并不会因为一个结点失败就回滚其它结点的操作 一开始,我们只有一台账户数据库;但随着账户增加,单个数据库肯定满足不了需求;当多台数据库服务器并存的情况下,需要解决负载平衡的问题; 为此,我们在系统的syshostconfig表中存储了一个key为accountNum,value为整数的参数;每次进行开户操作时,先用plproxy在所有数据库上查出该值并返到proxy层;由pgsql函数找出哪个数据库的accountNum最

Continue reading

Posted in linux | Tagged , , | 1 Comment

pgpool安装

下载地址:http://pgfoundry.org/projects/pgpool/ 文件为:pgpool-II-2.0.1.tar,tar xvfj pgpool-II-2.0.1.tar 在pgpool-II-2.0.1目录下,执行./configure --prefix=/home/y/share/pgsql ----with-pgsql=/home/y/share/pgsql, 要求with-pgsql目录必须为pgsql安装目录。 之后执行gmake,sudo gmake install; pgpool需要用PCP命令来连接数据库检索数据,其用户名、密码是在pcp.conf文件中保存的。密码是经过md5加密的,需要用户手工输入。 cp /home/y/share/pgsql/etc/pcp.conf.sample /home/y/share/pgsql/etc/pcp.conf md5加密码可以用/home/y/share/pgsql/bin/pg_md5直接生成 :例/home/y/share/pgsql/bin/pg_md5 postgres 结果为e8a48653851e28c69d0506508fb27fc5 将用户名,密码记入到pcp.conf文件中。 pcp默认端口为pcp_port = 9898。可以在pgpool.conf文件内修改 cp /home/y/share/pgsql/etc/pgpool.conf.sample /home/y/share/pgsql/etc/pgpool.conf,默认连接端口为port = 9999, 默认只允许本地连

Continue reading

Posted in linux | Tagged , | Leave a comment

PostgreSQL系统安装(Linux)

1. 到 http://www.postgresql.org下载pg8.2.4 source 2. 编译安装pgsql tar xvfj postgresql-8.2.4.tar.bz2 cd postgresql-8.2.4 ./configure --prefix=/home/y/pgsql #注意下一步把这个目录加入你bash的PATH中去 gmake sudo gmake install sudo mkdir /home/y/pgsql/data sudo chown yahoo /home/y/pgsql/data sudo -u yahoo /home/y/pgsql/bin/initdb --locale=zh_CN.UTF-8 --encoding=utf8 -D /home/y/pgsql/data 3.创建数据库 cd /home/y/pgsql/bin sudo -u yahoo ./pg_ctl …

Continue reading

Posted in 生活备份 | Tagged , | 1 Comment
Page 2 of 3123