fix记录:注意返回值

sqlite3使用sqlite3_exec,原型如下:

int sqlite3_exec(
    sqlite3*,                                  /* An open database */
    const char *sql,                           /* SQL to be evaluated */
    int (*callback)(void*,int,char**,char**),  /* Callback function */
    void *,                                    /* 1st argument to callback */
    char **errmsg                              /* Error msg written here */
);

其中有个参数是callback类型的。查询到的数据放在callback中处理。 (more…)

隐藏 gedit 的 debug 信息

linux下编辑文件,常用的有vi/vim,emacs,还有gedit -- 当然,还有谁有其他各种喜好。 emacs,vi什么的自然是控制台下搞,干干净净。 但是到了gedit的时候,因为是X display ,所以控制台方面就各种肆无忌惮的放warning

因为是写代码么,所以常常是shell跑到某个位置,然后vi/emacs/gedit一个命令打开文件,开始编辑。 (more…)

元素为N字节的数组放到单位为1byte的数组中,以及重新拼装回去

为了网上传输数据,所以数据最好被拆为单位为1byte大小的数组串(unsigned char 类型恰好是这个大小),然后再进行传输,这样才能不会出现自己无法控制的情况(断网谁都控制不了了当然)。 此外,需要约定好字节序 -- 比如本日志使用的是大端(big endian),以及编码。这样拆解和重组才不会错乱。 (more…)

Linux下怎样禁掉一个用户

这篇小文是讲述在Linux下怎样禁用一个用户的。当你不想永久的移除一个用户,而只是想要让它被禁止,而无法使用此用户登录使用系统的时候,下文可能对你有些用处。这个用户仍然可以做一些事情--比如邮箱自动收到邮件,但他将不能用他的账户登录、接收邮件。

现代linux系统使用/etc/shadow来保存被加密的用户口令,最快的,禁用某个用户的办法是修改在/etc/shadow中保存的口令。一般情况下,一个活动的用户账户在/etc/shadow中可能是像下面这样的: (more…)

error: file ‘/boot/grub2/locale/en.mo.gz’ not found

从fedora 17或者更早的时候开始,启动grub2,系统会弹出一行错误提示,然而在你迅雷不及掩耳盗铃之时,grub已经弹到了menu,直到某一天,区区利用虚拟机的暂停功能,终于看到了那行错误提示,上曰:

error: file '/boot/grub2/locale/en.mo.gz' not found

Redhat其实早就看到这错误了,Bug report一大坨,可惜到目前,fedora 18了都,还是要手工改。 (more…)

statfs获取硬盘信息

statfs是一个很有用的linux库函数。在它的帮助下,我们可以很容易得到硬盘信息啥的。 以前全是调用command命令,弱爆了。如果用 man 2 statfs 命令可以得到很多其使用方法。本post就简单写个demo表示下存在感 (more…)

linux下动态链接库的做法

我理解中,.so文件就相当于windows下的.dll文件。 环境不一样,感觉就不一样。 windows下的.dll文件虽然做了好些,但是怎么用makefile写还是不怎么了解。到了linux下更是完全扯着蛋了。

随便写了个so文件的sample。如有误,看官请指出。 (more…)