`
sogo6
  • 浏览: 113777 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

从argv中解析出进程名称

    博客分类:
  • C++
 
阅读更多
#include <iostream>
#include <string>

#ifdef WIN32
#define PATH_SEP        "\\"
#else
#define PATH_SEP        "/"
#endif


int test(int argc, char *argv[])
{
    std::cout << argv[0] << std::endl;
    std::string strProcName = argv[0];
    std::string::size_type pos1 = strProcName.find_last_of(PATH_SEP);
    if (pos1 != std::string::npos)
    {
        strProcName = strProcName.substr(pos1+1);
    }
    std::cout << strProcName << std::endl;

    pos1 = strProcName.find(".exe");
    if (std::string::npos != pos1)
    {
        strProcName = strProcName.substr(0, pos1);
    }
    std::cout << strProcName << std::endl;
    return 0;
}
分享到:
评论

相关推荐

    VC++杀进程的函数源码

    - `LPCSTR ExeName`:进程名称(字符串形式),如"notepad.exe"。 - **功能**:终止指定名称的进程。 ##### 3. 实现细节 - **创建进程快照**: ```cpp HANDLE hProcessSnap; hProcessSnap = CreateToolhelp32...

    Android Zygote启动流程源码解析

    在这个过程中,Zygote进程由init进程启动,而SystemServer进程和应用进程则由Zygote进程启动。接下来,我们将依据Android 6.0版本的源码来详细分析Zygote进程的启动流程。 #### 主要步骤解析 ##### 1. 初始化阶段 ...

    解析argc argv在php中的应用

    每个任务都会带有不同的参数(1、2、3),在PHP脚本中,可以通过`argc`和`argv[1]`来判断并执行相应的逻辑,这样就可以按照不同的参数值分配不同的工作负载,从而实现进程的划分和负载均衡。 以下是一个简单的PHP...

    实验报告1

    在`mytime`的第二种用法中,`argv[1]`和`argv[2]`分别用于传递控制时间和被测程序的名称。 6. **atoi**:这个函数用于将字符串转换为整数。在`program2`中,`argv[1]`的值通过`atoi`转换为整数,用于`Sleep`函数,...

    vc获取命令行参数并显示

    这里,`argc`代表参数的数量(包括程序本身的名称),而`argv`是一个指向字符串数组的指针,每个字符串代表一个参数。数组的最后一个元素是空指针`NULL`。 在给出的例子中,程序`lx`接收到的参数如下: 1. `argv[0]...

    UNIX实验一 实现带参数的简单shell.doc

    此外,还使用了`sys/wait.h`头文件中的`waitpid()`函数来等待子进程的结束。示例代码片段如下: ```c #include #include #include #include #include #define MAXLINE 1024 int main(void) { char buf...

    mpi通用函数介绍

    在给出的示例代码中,`who.c`展示了如何使用`MPI_Comm_rank`、`MPI_Comm_size`和`MPI_Get_processor_name`来打印每个进程的ID、总进程数和所在机器的名称。而`message.c`则演示了如何使用`MPI_Send`和`MPI_Recv`在...

    匿名管道与命名管道的使用

    3. **读进程** (`read_data()`): 从管道中读取数据并输出到屏幕。 ### 知识点二:命名管道(FIFO) #### 定义: 命名管道或FIFO是一种具有全局名称的管道,它可以在任何进程之间进行通信。作为一种特殊的文件类型...

    linux内核课件

    `argc`表示参数的数量(包括程序名称),而`argv`是一个指向字符串数组的指针,每个字符串代表一个命令行参数。 环境变量则通过第三个参数`envp`传递给`main`函数。环境变量数组是一个指向字符串数组的指针,每个...

    Android_启动过程.pdf

    strcmp(basename(argv[0]), "ueventd"))`: 如果程序的名称是`ueventd`,则执行特定于`ueventd`的逻辑。 3. **`ueventd`与`init`的区别**: - 当编译此文件后,生成的可执行程序名为`init`,同时还会创建一个指向该...

    2011并行程序设计期末考试卷_-_参考答案

    2. **节点信息收集**:接着,使用MPI的`MPI_Allgather`函数来收集所有进程所在的节点名称,存储在一个全局数组`allhost`中。 3. **确定通信域划分所需参数**:为了实现通信域的划分,需要确定两个关键参数——`...

    VC++ 只运行一个程序实例

    2. **检查互斥量状态**:如果`CreateMutex`返回的错误码是`ERROR_ALREADY_EXISTS`,表示已有程序实例持有该互斥量,那么我们可以在新启动的程序中处理这种情况,比如弹出消息提示用户,或者让新启动的程序与已运行的...

    castle城堡游戏

    在【压缩包子文件的文件名称列表】中,"castle"可能是游戏的源代码文件或者资源文件。源代码可能包含了主程序、地图定义、命令解析、游戏状态管理等模块。资源文件可能包含地图布局、物品描述、敌人设置等数据,这些...

    APUE读书笔记(Unix高级环境编程)

    - **命令行参数和环境变量**:`argv`和`envp`数组传递给进程。 - **C程序的存储空间基本布局**:解释进程地址空间的组成部分。 - **设置和获取系统资源限制**:使用`getrlimit`和`setrlimit`函数调整进程的资源限制...

    easy vc sqlite3_master

    例如,如果`type`是'таблица',你可以解析`name`和`sql`字段来获取表格的名称和创建语句。 最后,`sqlite3_exec()`会返回一个错误代码,0表示成功,非0表示有错误发生。你可以检查返回值来确定查询是否成功...

    linux下的自己开发的小工具

    - **命令行参数处理**:通过`main`函数的`argc`和`argv`参数来接收和解析命令行参数,实现不同功能。 - **进程间通信**:可能涉及到管道(pipe)、套接字(socket)、信号(signal)等机制。 - **系统调用**:如`...

    Node.js-用于创建Node.js命令行工具的样板

    - `process.argv`:获取命令行参数,可以从中解析用户的输入。 - `commander` 或 `yargs` 模块:这两个流行的第三方库可以帮助我们轻松处理命令行选项和参数。 - `fs` 模块:Node.js 内置的文件系统模块,用于读写...

    北邮操作系统实验报告

    - 设置虚拟机名称及配置文件位置。 - 配置虚拟机内存大小。 - 网络连接使用默认设置。 - 磁盘设定时选择与主机共享物理硬盘。 - 指定硬盘并完成配置。 - 使用ISO文件引导虚拟机。 - 修改BIOS设置以从光盘启动...

    Linux 汇编语言开发指南

    这通常涉及到对`argc`和`argv`数组的解析,这些数组在C语言程序中由主函数接收。在汇编程序中,可以通过直接操作栈来实现类似的功能。 #### 七、GCC内联汇编 GCC提供了内联汇编功能,允许在C/C++代码中嵌入汇编...

Global site tag (gtag.js) - Google Analytics