摘要: GNU 代表一种自由的软件开发精神,从某种意义上说,GNU大多拥有本身具备较高的软件水平;GNU真正的蓬勃发展是在LINUX操作系统出现之后,大量的GNU代码在LINUX上移植运行。GNU的发展与LINUX的发展,可以说是相辅相成,所以,现在通常的说法叫“GNU/Linux systems”. GNU工程开发了一套与Unix向上兼容的名为“GNU”(GNU's Not Unix)的完全自由的软件系统。(free software system)。由Richard Stallman完成的最初的GNU工程的文档被称为‘GNU宣言’,该宣言已经被翻译成多种其它语言。我们还有创作与1983年的 阅读全文
posted @ 2011-09-25 16:46 only_eVonne 阅读(531) 评论(0) 推荐(0) 编辑
摘要: 在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。1.core文件的生成开关和大小限制(1)使用ulimit -c命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。(2)使用ulimit -c filesize命令,可以限制core文件的大小(filesize的单位为kbyte)。若ulimit -c unlimited,则表示core文件的大小不受限制。如果生成的信息超过此大小,将会被裁剪,最终生成一个不完整的core文件。在调试此 阅读全文
posted @ 2011-09-25 15:47 only_eVonne 阅读(55088) 评论(0) 推荐(2) 编辑
摘要: 1.Sleep,Usleep都是在库函数中实现,最终都会调用nanosleep的系统调用以usleep(1000)为例,用strace进行跟踪int nanosleep(const struct timespec *req, struct timespec *rem);struct timespec{ time_t tv_sec; long tv_nsec;}这个函数功能是暂停某个进程直到你规定的时间后恢复,参数req就是你要暂停的时间,其中req->tv_sec是以秒为单位,而tv_nsec以毫微秒为单位(10的-9次方秒)。由于调用nanosleep是是进程进入TASK_IN 阅读全文
posted @ 2011-09-25 12:23 only_eVonne 阅读(660) 评论(0) 推荐(0) 编辑
摘要: int main(int argc, char *argv[]){ short a = 0xffff; printf("a = 0x%x\n", a); if(a == 0xffff) { printf("Just Test\n"); } return 0;}最后输出的结果是 a = 0xffffffff原因如下:1.%x 表示要输出无符号整数(unsigned int)的十六进制形式2.当有符号类型向更大长度类型转换时,如果首位为1,则前面全部补全为1,如首位为0,则前面全部补全为0预期的打印Just Test不会被打出来,因为:在比较时a被强制转换成 阅读全文
posted @ 2011-09-25 11:07 only_eVonne 阅读(408) 评论(0) 推荐(1) 编辑