摘要:公司内部搭建了一个git代码服务器。除了是在内网以外,其它跟github是一模一样的。ssh验证这块有点麻烦,需要细细梳理一番。git的ssh验证,关键的是公钥私钥概念:公钥我看来就是一把锁,所有人都能看到(如果想看的话);私钥是锁的钥匙,不可以轻易示人。-----制造一套锁钥ssh-keygen -t rsa -C “jogger@mail.com” # 使用邮箱账号生成一套公钥密钥。注意是一套锁与钥匙。这两个东西生成后用文件形式保存在 ~/.ssh目录下,私钥对应id_rsa文件,公钥对应id_rsa.pub。-----将锁挂到门上登录github网站,个人设置中有ssh key。add上
阅读全文
摘要:Signal Value Action Comment ------------------------------------------------------------------------- SIGHUP 1 Term Hangup detected on controlling terminal or death of controlling process SIGINT 2 Term Interrupt f...
阅读全文
摘要:由于信赖glib库的高质量,所以在项目中大量的使用了glib中的glist,随着项目中内容的增加,发现会在glist的g_slice_alloc等函数中莫名其妙的随机出现invalid read等操作,造成程序coredump。索性写了一个程序,专门测试glist在多线程情况下面的特性,发现在单线程情况下可以正常运行的glist操作代码在多线程下面会出现随机coredump的情况。而这些代码在逻辑上已经是保证了线程安全。故此,得出glib的非线程安全,即使在应用层保证了线程安全,在glib的底层还是非线程安全的。这点在使用时需要注意。update:在使用glib之前,调用g_thread_in
阅读全文
摘要:一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如:tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory原因一般有两个, 一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对, 遇到这种情况那就去网上下载并安装上即可.另外一个原因就是已经安装了该共享库, 但执行需要调用该共享库的程序的时候, 程序按照默认共享库路径找不到该共享库文件.所以安装共享库后要
阅读全文
摘要:这个Makefile是生成二进制程序的。参考前一篇文章PREFIX=/usr/localBIN=myLIBPATH=-L$(PREFIX)/libMY_LIBS=-L../lib -lspiderMY_CFLAGS=-I../includeLIBS:=$(MY_LIBS)INCLUDE=$(MY_CFLAGS)CFLAGS=-g -Wall -O3 $(INCLUDE)INSTALL=/usr/bin/install -cLDFLAGS= -Wl,-R$(PREFIX)/lib CC=gccSOURCE=main.cOBJS:=$(patsubst %.c, %.o, $(SOURCE))DE
阅读全文
摘要:此Makefile用来生成共享库,一个前辈写的,像他本人表示感谢。PREFIX=/usr/local #指定生成库的安装位置,当然只是程序员开发机上的位置。指定后 make install可以将库安装,app使用的时候可以指定该路径下的库文件,就能使用该库BIN=libmy.so #生成的库文件名LIBPATH=$(PREFIX)/lib #指定共享库的路径MY_CFLAGS=-I../include #头文件路径LIBS:= #可扩展lib,比如要添加glib,可以把glib路径加到这里,例如:-L../glibpath/lib -lglibINCLUDE=$(MY_CFLAGS) #可扩.
阅读全文
摘要:万能Makefile下载地址:http://ldc.usb.ve/~vtheok/cursos/ci2126/sd10/practicas/code7/Makefile测试:新建main.c写一个helloworld程序,拷贝Makefile到同级目录。直接make,通过。测试:main.c plus.c plus.h,Makefile依然可以正常工作。缺陷:没有生成共享库的功能。但该文件依然很强大,做一些简单的测试工程,使用这个足够了。
阅读全文
摘要:原文地址http://blog.163.com/yangzhanghui_job/blog/static/179575062201271341344615/用rz,sz命令在xshell传输文件很好用,然后有时候想在windows和linux上传或下载某个文件,其实有个很简单的方法就是rz,sz首先你的Ubuntu需要安装rz.sz(如果没有安装请执行以下命令,安装完的请跳过.其它版本linux请自行安装相应软件)sudo apt-get install lrzsz(centos 5.2上 yum install lrzsz安装成功,并能正常使用)安装完毕即可使用rz,sz是便是Linux/U
阅读全文
摘要:老张爱喝茶,废话不说,煮开水。出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。1 老张把水壶放到火上,立等水开。(同步阻塞)老张觉得自己有点傻2 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。(同步非阻塞)老张还是觉得自己有点傻,于是变高端了,买了把会响笛的那种水壶。水开之后,能大声发出嘀~~~~的噪音。3 老张把响水壶放到火上,立等水开。(异步阻塞)老张觉得这样傻等意义不大4 老张把响水壶放到火上,去客厅看电视,水壶响之前不再去看它了,响了再去拿壶。(异步非阻塞)老张觉得自己聪明了。所谓同步异步,只是对于水壶而言。普通水壶,同步;响水壶,异步。虽然都能干
阅读全文
摘要:安装去官网拿到gsoap安装包。作者使用的gsoap_2.8.10.zip。unzipgsoap_2.8.10.zip --解压安装包。./configure --检查安装环境。 如果失败(出现error的),根据错误提示,安装相关的包。如果安装了openssl,还提示找不到-lssl,用root安装yum install openssl-devel(如遇其它,参考这篇博客http://blog.csdn.net/learnhard/article/details/5154262)make --编译。make install --安装。记得多看看README NOTE INSTALL这些文件,
阅读全文
摘要:本文简单说明一下apache的白痴级问题1 apache与httpd的关系根据网上说的,纷繁复杂。不过更愿意相信的还是httpd是apache关于http服务的单个进程。意思就是httpd属于apache,apache包含且不仅仅包含httpd。2chkconfig --levels 235 httpd on开机运行级别2,3,5的时候,随机启动httpd。(一点关于chkconfig的问题:由chkconfig 引发的联想——怎么查看程序是否已经安装/成功安装)3 手动启动httpd /usr/sbin/httpd /etc/init.d/httpd start service httpd
阅读全文
摘要:某天需要运行chkconfig,root登录依然找不到该命令。[root@localhost ~]# chkconfigbash: chkconfig: command not found为什么,先看看chkconfig是不是安装过了?[root@localhost ~]# rpm -q chkconfigchkconfig-1.3.30.1-2是安装过的,安装到哪里了?[root@localhost ~]# whereis chkconfigchkconfig: /sbin/chkconfig /usr/share/man/man8/chkconfig.8.gz/sbin/chkconfig
阅读全文
摘要:从版本库中拿了一份代码,结构为 (前缀忽略)1/10/100现在新建了一个文件夹1/10/101/*.* 里面有若干文件。就是说现在新建了一个101文件夹,而且101跟100是同级的。1 去到 10目录: svn add 101 ,然后101目录下就有了.svn文件夹2 101目录中: svn ci -m "add 101", 将整个目录中所有文件提交上去3 101中: svn delete a, 将代码库中的a文件标记为删除。注意:此时并没有真正删除,只是标记了一下。如果想真正删除,还得执行 svn ci4 101中: svn ci -m "delete a&q
阅读全文
摘要:sql语句:select `to`, `from` from history group by `to`, `from`;查询to from两字段中所有出现过的组合,并且没有重复。
阅读全文
摘要:本文尝试使用zeromq完成一项简单的网络传送任务。(小白使用开源共享库 (C使用zeromq)该篇已经完成了一个简单的可运行的基本程序,本篇基于此改造而来)main.c修改后的内容如下:#include "zhelpers.h"int main (void){ void *context = zmq_init (1); // Socket to talk to clients void *responder = zmq_socket (context, ZMQ_REP); zmq_bind(responder, "tcp://*:5559"); whi
阅读全文
摘要:本篇介绍如何创建C服务器程序并且使用一个开源共享库——zeromq(简称zmq)zmq的安装方法参考:centos安装zeromq(0mq, ZeroMQ, ØMQ)1 创建文件夹 mkdir use_zmq2 cd use_zmq去到新文件夹下。同样新建use_zmq/appuse_zmq/libuse_zmq/include三个文件夹3 zmq成功安装后,/usr/local/include 会有zmq的头文件,/usr/local/lib会有zmq的库文件 将头文件拷贝到use_zmq/include 库文件拷贝到use_zmq/lib4 app下新建main.c#includ
阅读全文
摘要:1 下载安装包Linux shell中 wget http://download.zeromq.org/zeromq-2.1.11.tar.gz2 首先要做的查看README(绝大部分开源软件都有README,而且非常重要,记得都要看看) README当中提到安装方法参考INSTALL INSTALL中如下:The simplest way to compile this package is:1. `cd' to the directory containing the package's source code and type`./configure' to co
阅读全文
摘要:本文简单介绍共享库的生成与使用当前目录下有三个文件,我们稍后会将plus.c编译成为共享库so文件以供main调用$lsmain.c plus.c plus.hmain.c#include <stdio.h>#include "plus.h"intmain(int argc, char** argv){ int a = 10; int b = 5; printf("a + b = %d\n", plus(a, b)); return 0;}plus.c// plus.cint plus(int a, int b){ return a+b;}p
阅读全文
摘要:本文介绍比入门级稍高的Makefile写法和静态库的生成及使用。先看一个目录结构lib // 库 plus.c reduce.c Makefileinclude plus.h reduce.happ // 主体程序 main.c // 很多开源代码都有一个或者多个main.c,而且里边往往实现了 main 函数。某想这可能是为了方便读者找到入口函数 MakefileMake.defines // app和lib中的两个Makefile会依赖此文件在这个实例中,我们会把plus.c reduce.c生成一个静态库,提供给main.c文件来使用。某发现很多开源的代码目录下都有一个li...
阅读全文
摘要:makefile的重要不言自明,不懂的话可以去网上搜下资料,这里不再讲述。以下小白开始学习makefile:某认为买几本基础的编程书籍挺重要。想要学好linux尤其是linux下编程的话还是需要下点本钱的,(喂,老兄,这身打扮就说你是孙悟空喽,下足本钱嘛,头发都开叉了,有点专业精神!@#¥——大话西游·菩提游客)这样才有专业精神,书籍很重要,可以帮我们节约很多的时间。要注意时间就是金钱,节约时间就是节约金钱倒是次要,提高效率才是真的:) 这里不是说网上资料不全(虽然有时候确实不全),浪费时间的情况包括:1 搜索关键字不准确,定位百转千回;2 网络状况不稳定,比如有时候谷歌访问受限;3
阅读全文