Linux系统编程
梦想照旧实现
人还是要有一个远大的理想的,否则总是不经意的会被身边的物欲横流迷惑双眼!
展开
-
Linux系统调用(慢慢整理转帖)
remove remove()函数语法: #include int remove( const char *fname );remove()函数删除由fname(文件名)指定的文件. remove()成功时返回0,如果发生错误返回非零. time()是这样声明的:time_t time( time_t *timer );用法是你原创 2009-08-21 18:01:00 · 804 阅读 · 0 评论 -
GDB调试信号、多线程、多进程
GDB的功能很强大,本文主要介绍用GDB来调试信号、多进程、多线程,具体如下:(一)信号GDB有能力在你调试程序的时候处理任何一种信号,你可以告诉GDB需要处理哪一种信号。你可以要求GDB收到你所指定的信号时,马上停住正在运行的程序,以供你进行调试。你可以用GDB的handle命令来完成这一功能。 handle 在GDB中定义一个信号处理。信号可以以转载 2012-09-06 21:28:05 · 820 阅读 · 0 评论 -
在linux上获得线程id的方法
在linux2.4版本后,linux使用了NPTL作为自己的线程库,为了兼容POSIX标准,所以在内核task中有两个域tgid和tid,前者是进程id,后者是线程id。在linux上获得线程id的方法,目前我所知的有三种,当然这里的三种是指在用户态的程序中,否则除非自己写的kernel module, 都是调用编号224的系统调用实现的(2.6版本)。 第一种: gettid转载 2012-09-06 21:20:06 · 5657 阅读 · 1 评论 -
Linux系统下头文件所在的目录
标准C头文件: /usr/include/C++头文件:/usr/include/c++/Linux系统头文件:/usr/include/i386-linux-gnu/原创 2012-09-06 21:24:10 · 1843 阅读 · 0 评论 -
Linux动态库剖析
原文:http://os.chinaunix.net/a2008/0907/1059/000001059495.shtmlM. Tim Jones, 顾问工程师, Emulex Corp.2008 年 9 月 08 日动态链接的共享库是 GNU/Linux® 的一个重要方面。该种库允许可执行文件在运行时动态访问外部函数,从而(通过在需要时才会引入函数的方式)减少它们对内存的转载 2012-09-09 09:51:15 · 857 阅读 · 0 评论 -
多线程程序中fork容易导致fork出来的子进程中死锁(转载)
前言:exce调用并不创建新进程,所以前后的进程ID并未改变,exec只是用一个全新的程序替换了当前进程的正文、数据、堆和栈段多线程程序里不准使用fork :为什么???UNIX上C++程序设计守则3准则3:多线程程序里不准使用fork在多线程程序里,在”自身以外的线程存在的状态”下一使用fork的话,就可能引起各种各样的问题.比较典型的例子就是,fork出来的子进程可转载 2013-05-01 12:19:52 · 4083 阅读 · 0 评论 -
Linux下的文件锁
第一种:原子方式创建锁,解锁int file_desc = open("/tmp/lock.test", O_RDWR | O_CREAT | O_EXCL, 0444); ----创建锁(上锁)unlink("/tmp/lock.test"); ----解锁第二种:锁定文件的一部分。(1)使用第一种方法创建锁文件;(2)使用fcntl接口设置锁,上锁,解锁;原创 2014-04-23 22:36:17 · 822 阅读 · 0 评论