《Linux系统应用与开发教程》所有课后习题和答案 联系客服

发布时间 : 星期一 文章《Linux系统应用与开发教程》所有课后习题和答案更新完毕开始阅读05174c4fb9f3f90f76c61bb7

#启动可执行文件 function start_svc() {

echo \starting\ ${COMMAND_PATH} }

#停止可执行文件 function stop_svc() {

pid=`grep_proc_id`

if [ -n \] && [ 0 -ne ${pid} ];then kill -9 ${pid} echo \${pid} \ fi

echo \stoped\}

#重新启动可执行文件 function restart_svc() {

stop_svc start_svc

echo \restart\}

#输出程序使用方法及简单实例 function USAGE() {

echo \svc [start] [restart] [stop]\ echo \start,restart or stop service \

echo ${COMMAND_PATH}

echo \svc restart \}

#程序主要路径 if [ $# -lt 1 ] ; then USAGE else

#根据传入参数完成启动、重启、终止程序的功能 case $1 in

start) start_svc ;; restart) restart_svc ;; stop) stop_svc ;; *) USAGE ;; esac fi

第12章 gcc的使用与开发

1.一个C/C++程序从开始编码到生成可执行的二进制文件至少要经过4个步骤:(1)预处理(Preprocessing);(2)编译(Compilation);(3)汇编(Assembly);(4)链接(Linking) 2.略。

3.略,可参见正文表12-1。

4.默认路径放在/usr目录下,其中库文件在/usr/lib下,头文件在/usr/include目录下。 5.为了简化生成代码的步骤,GNU提供了make工具。

make工具读入一个文本文件,文本文件中主要记录了一些规则。规则说明了生成最终的二进制代码依赖哪些模块以及这些模块如何生成的信息。为了简化,这个文件通常命名为makefile。

makefile文件的一般格式是: 目标:依赖项列表 (Tab缩进)命令...

其中,―依赖项‖一般为生成目标所需的其他目标或者文件名。

6.略,可参见正文表12-3。

第13章 gtk+图形界面程序设计

1.在Xlib之上出现了很多更高层的开发工具包。它们将底层的Xlib的API进行封装,提供更高级的接口,达到降低开发难度,提高开发效率的目标。此外,这些工具包大多并非完全专注于界面的开发,在常用数据结构(树、链表等)甚至数据库操作等方面都提供了接口。下面将介绍的GTK+就是这样一个开发工具包。

2.GTK+由3个库组成:(1)GLib:是GTK+和Gnome的底层核心库,提供了可以供C语言处理的数据结构、可移植的封装接口和用来处理事件循环、线程、动态加载的接口,构成了一个类似对象的体系结构。(2)Pango:是处理界面布局和国际化的库,构成了GTK+2.0处理字符和字体的核心。(3)Atk:提供了一些其他功能的接口。一个实现对Atk接口支持的应用软件,可以实现屏幕阅读、放大、使用其他输入设备等功能。

3.除了GIMP外,大量使用GTK+的著名软件还有图形桌面系统GNOME、字处理软件Abiword、图表软件Dia以及辅助开发GTK+程序的Glade等。 4.

(1)头文件源代码: #include //btnOne的点击事件处理函数

void on_btn_One_clicked(GtkWidget *widget,gpointer data){ g_print(\from btn_One!\\n\}

//btnTwo的点击事件处理函数

void on_btn_Two_clicked(GtkWidget *widget,gpointer data){ g_print(\from btn_Two!\\n\}

//btnThree的点击事件处理函数

void on_btn_Three_clicked(GtkWidget *widget,gpointer data){ g_print(\from btn_Three!\\n\}

//窗口关闭事件处理函数

void on_delete(GtkWidget *widget, GdkEvent *event,gpointer data){ g_print(\Closed.\\n\

gtk_main_quit(); }

(2)主程序源代码:

int main(int argc,char * argv[]){ GtkWidget *window;//窗口 GtkWidget *btnOne;//按钮1 GtkWidget *btnTwo;//按钮2 GtkWidget *btnThree;//按钮3 GtkWidget *table;//table布局

gtk_set_locale(); gtk_init(&argc,&argv); //创建窗口

window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window),\Gtk!\gtk_container_set_border_width (GTK_CONTAINER (window), 10); //创建3*3的表格布局并和窗口关联 table = gtk_table_new(3,3,TRUE);

gtk_container_add(GTK_CONTAINER(window),table); //关联窗口关闭事件

g_signal_connect (G_OBJECT (window), \ G_CALLBACK (on_delete), NULL); //创建按钮并关联相对应的事件处理程序

btnOne = gtk_button_new_with_label (\ g_signal_connect (G_OBJECT (btnOne), \ G_CALLBACK (on_btn_One_clicked), NULL); btnTwo = gtk_button_new_with_label (\ g_signal_connect (G_OBJECT (btnTwo), \