signal

DBUS入门与应用

谁都会走 提交于 2019-11-26 05:14:04
转载自:http://www.cnblogs.com/liyiwen/archive/2012/12/02/2798876.html,作者: 唐风 DBUD的C编程接口 最近在学 Dbus,不过总是不得其门而入。 大部分资料都讲了很多东西却最终没有让我搞清楚怎么用 DBus ,不就是一个 IPC 通信的工具么?就没有一点实用些的资料么?看了很多资料之后还是觉得只见树木不见森林。仔细整理下思路,觉得还是应该从最基本的方面入门,先从 DBus 的 C API 入手学习,有了这些知识,就算麻烦,也可以先在完成一个基本功能的例子程序的同时大概的知道 DBus 的运行机制。 在网上找到这么一篇文章: http://www.matthew.ath.cx/misc/dbus , 正合我意,下面的内容基本是对这篇文章的翻译和扩充。 注意: 翻译没有得到原文作者同意,原文也很简单易懂,最好去读原文。如果收到投诉,我会立即撤掉本文的。 本文不是一篇好的 DBus 入门,有很多基本的东西不在记述之内。 一般情况下不会直接使用 C API 进行 DBus 的编程,而是使用某种 DBus-binding,但我觉得理解 DBus 的 C API 对完整地理解 DBus 是非常重要的。 虽然 DBus 是用 C 写的,而且本文写的是 C API,但是 DBus 设计中充满的面向对象的思想,请注意。 一

Linux信号signal

情到浓时终转凉″ 提交于 2019-11-25 23:17:16
如何让程序在后台运行 在之前的章节中,如果要运行程序,在命令提示行下输入程序名后回车,程序被执行,然后等待程序运行完成。在程序运行的过程中,可以用 Ctrl+c 中止它。 在实际开发中,我们需要让程序在后台运行,不受界面的影响,也不让程序员等待,例如前几章节的socket服务端程序。 如果想让程序在后台运行,有两种方法。 1、加“&”符号 如果想让程序在后台运行,执行程序的时候,命令的最后面加“&”符号。 如: ./book242 & 程序就在后台运行了。 在后台运行的程序,用Ctrl+c无法中断,并且就算终端退出了,程序仍在后台运行。 如果终端退出了,后台运行的程序将由系统托管。 在第一张图中,book249的父进程是4555,第二张图中,book249的父进程是1。 2、采用fork 另一种方法是采用fork,主程序执行fork,生成一个子进程,然后父进程退出,留下子进程继续运行,子进程将由系统托管。 示例: 上图中,突出显示的就是新增的代码。 上图中,子进程的父进程是系统进程。 3、如何让中止后台程序 问题来了,程序在后台运行了,离开了终端控制,用Ctrl+c上也无法中止,那怎么让它停下来呢?暂时用一个笨方法:杀了它。 杀程序有两个方法: 1 )killall 程序名 killall book249 2 )先用“ps -ef|grep 程序名”找到程序的进程编号,然后用