LINUX进程名,初步看有两种:

  • ps看到的名
  • 图形进程名?在任务栏上显示和分组用到。

前后对比:

  • 改名之前的显示

  • 改名之后的显示

  • 具体代码

#include <stdio.h>
#include <gtk/gtk.h>
#include <stdlib.h>
#include <sys/prctl.h>#define WINDOW_WIDTH  500
#define WINDOW_HEIGHT 300#define WINDOW_BG_COLOR_R 0x0000
#define WINDOW_BG_COLOR_G 0x0000
#define WINDOW_BG_COLOR_B 0xFFFF#define WINDOW_TITLE      "泰山Office"/*创建示例窗口*/
static void start_window()
{GtkWidget *window;GdkColor color;window = gtk_window_new(    GTK_WINDOW_TOPLEVEL);gtk_window_set_position(    GTK_WINDOW(window), GTK_WIN_POS_CENTER);gtk_window_set_default_size(GTK_WINDOW(window), WINDOW_WIDTH, WINDOW_HEIGHT);gtk_window_set_title(       GTK_WINDOW(window), WINDOW_TITLE);color.red   = WINDOW_BG_COLOR_R;color.green = WINDOW_BG_COLOR_G;color.blue  = WINDOW_BG_COLOR_B;    gtk_widget_modify_bg(window, GTK_STATE_NORMAL, &color);g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(gtk_main_quit), NULL);gtk_widget_show(window);
}static void setName4TaskBar(int argc, char **argv, const char *title)
{
#if 1strcpy(argv[0], title);
#else//从代码分析来看,可以直接修改char*  pLast;char*  pFirst;size_t size = 0;pLast = argv[0];for (int i = 0; i<argc; ++i) {pLast = argv[i] + strlen(argv[i]) + 1;}pLast += strlen(pLast);pFirst = argv[0];argv[1] = NULL;memset( pFirst, 0x00,  pLast - pFirst);strncpy(pFirst, title, pLast - pFirst);
#endif
}static void setNameForPsCommand(const char* pName)
{prctl(PR_SET_NAME, pName);
}int main(int argc,char *argv[])
{for (int i = 0; i<argc; ++i){printf("%d=%s\n", i, argv[i]);} //在任务栏上分组用到setName4TaskBar(argc, argv, "Office 4 TaskBar");//运行程序,另起一个终端,使用ps -a就可以看到这个。setNameForPsCommand("Office 4 ps");gtk_init(NULL, NULL);start_window();gtk_main();return 0;
}
  • 编译脚本
#!/bin/bashCOMPILE_INCLUDE=${COMPILE_INCLUDE}" -I/usr/include/gtk-2.0"
COMPILE_INCLUDE=${COMPILE_INCLUDE}" -I/usr/include/glib-2.0"
COMPILE_INCLUDE=${COMPILE_INCLUDE}" -I/usr/include/pango-1.0"
COMPILE_INCLUDE=${COMPILE_INCLUDE}" -I/usr/include/cairo"
COMPILE_INCLUDE=${COMPILE_INCLUDE}" -I/usr/include/gdk-pixbuf-2.0"
COMPILE_INCLUDE=${COMPILE_INCLUDE}" -I/usr/include/atk-1.0"
COMPILE_INCLUDE=${COMPILE_INCLUDE}" -I/usr/include/harfbuzz"COMPILE_INCLUDE=${COMPILE_INCLUDE}" -I/usr/lib/x86_64-linux-gnu/glib-2.0/include"
COMPILE_INCLUDE=${COMPILE_INCLUDE}" -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include"COMPILE_LINK=${COMPILE_LINK}" -lgobject-2.0 -lgtk-x11-2.0"OUTPUT_FILE=test
if [ -f ${OUTPUT_FILE} ]; thenrm ${OUTPUT_FILE}
fi
echo ${COMPILE_INCLUDE_LINK}
gcc \-o ${OUTPUT_FILE} \gtk.cpp \${COMPILE_INCLUDE} \${COMPILE_LINK}

LINUX给进程内容窗口改名的代码相关推荐

  1. linux 查看进程数据段,如何读取Linux进程中的代码段和数据段

    Linux下的程序的文件格式是ELF,里面分了各种段,有代码段.数据段.等.当运行这个程序时,系统也会给这个进程创建虚拟内存,然后把ELF中的数据分别加载到内存中的对应位置.本文整理了用cpp程序读取 ...

  2. linux下进程的创建代码,伪代码说明Linux进程创建过程

    http://blog.csdn.net/hongmy525/archive/2007/11/11/1879026.aspx 以前单知道linux创建进程用的fork函数,深一点点知道是调用sys_f ...

  3. 【Linux】进程等待wait/waitpid status详解 (非)阻塞等待(代码)

    文章目录 进程等待原因 进程等待方法 wait waitpid 获取子进程status (非)阻塞等待 进程的非阻塞等待方式代码 进程的阻塞等待方式代码 进程等待原因 fork创建了子进程,子进程帮父 ...

  4. 深入理解Linux守护进程

    深入理解Linux守护进程Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由运行在后台的守护进程(daem ...

  5. Linux下进程隐藏的常见手法及侦测手段

    痕迹清理 1.  退出前 history -c 2.  多使用sftp吧 0.0 3.  web日志删除一些 4.  用户目录下很多 history,一言不合就是删 :) 4.  btmp wtmp ...

  6. linux下进程调度算法实验,Linux下进程调度算法的模拟实现.doc

    Linux下进程调度算法的模拟实现 枣 庄 学 院 信息科学与工程学院课程设计任务书 题目: Linux下进程调度算法的模拟实现 学 生1: 学 生2: 学 生3: 专 业: 计算机应用技术 课 程: ...

  7. linux sleeping进程多_一文掌握Linux实战技能系统管理篇

    linux 安装包-yum 的使用 linux 进程管理 ps pstree top 指令的使用 linux 进程之间的通信 linux 守护进程 linux 内存以及硬盘使用查看 linux 防火墙 ...

  8. 初识linux之进程

    目录 一.冯诺依曼体系结构 1.冯诺依曼体系结构的五大构成 (1)存储器 (2)输入设备和输出设备 (3)运算器和控制器 2.CPU执行 (1)CPU数据来源 (2)内存.CPU和磁盘的数据交换 3. ...

  9. Linux(进程概念详解)

    进程是如今编程领域非常重要的一个概念,进程是比较抽象的,不容易直接理解.因为进程与操作系统息息相关,因此在介绍进程之前,笔者打算先简易讲一下操作系统的工作流程,理解操作系统是如何管理软件和硬件的,然后 ...

  10. linux排查进程退出原因面试,linux面试中经常会遇到的问题

    Linux 面试题答案解析 1.绝对路径用什么符号表示?当前目录.上层目录用什么表示?主目录用什么表示? 切换目录用什么命令? 答案: 绝对路径: 如/etc/init.d 当前目录和上层目录: ./ ...

最新文章

  1. Image转Base64镶嵌网页中
  2. 最简单的一个java驱动jdbc链接mysql数据库
  3. 【springBoot】注解的详解
  4. MYSQL在Windows 7下迁移安装路径教程
  5. IOS学习笔记04---编写第一个C语言程序-Hello World
  6. 吴恩达机器学习 11.聚类
  7. ernie和Bert的参数理解
  8. UVa 12333 - Revenge of Fibonacci manweifc(模拟加法竖式 字典树)
  9. 开源自动化运维工具_批量与重复运维压力如何破?了解一下这款自动化运维工具...
  10. pandas操作手册
  11. FMCW雷达测速和测距原理介绍
  12. 远程桌面无法复制粘贴传输文件解决办法
  13. GNSS数据处理(一)——开源GNSS数据处理软件介绍
  14. 电影《道士下山》主创亮相 董琦:转身遇贵人
  15. 一份热乎乎的字节面试真题
  16. Spring+SpringMVC+Mybatis(开发必备技能)04、mybatis自动生成mapper_dao_model(包含工具与视频讲解) 纯绿色版本、配套使用视频,100%运行成功
  17. 我转行程序员的那一年(一)
  18. js数组操作(pop,push,unshift,splice,shift方法)
  19. 功能强大的黑科技APP,各种免费资源一应俱全!
  20. 苹果照片未删却不见了_删掉的照片怎样找回?教你打开手机这个功能,可以立马恢复...

热门文章

  1. android消息发送字符串,Android aSmack-如何对文件发送进行自定义消息...
  2. thinkphp5 mysql加1_ThinkPHP5.1的数据库链接和增删改查
  3. kettle使用数据库来生成序列_kettle 生成 ktr
  4. 唯有自己变得强大_强大自己!(经典)
  5. 三条中线分的六个三角形_数学中三角形的“五心”你会了吗?教你马上学会。(中考生必看)...
  6. java遍历d盘所有文件夹_java遍历指定盘符的所有文件和文件夹
  7. linux对硬盘进行分区吗,linux对4T硬盘进行分区
  8. PPT双屏抽奖,大气,能Hold住全场!与其它PPT内容可融为一体,实现无缝切换!
  9. SQL夯实基础(九)MySQL联接查询算法
  10. 七十三、分发系统介绍、expect脚本远程登录、expect脚本远程执行命令、expect传递参数...