C壳: kill process syntax

标签 c process kill

我正在尝试编写自己的 C shell。我想知道如何在命令行中调用“kill”。例如,

shell> kill 2      
shell: process 2 has been killed

第 1 行是用户输入“kill 2”

第 2 行是程序打印的消息,说明已完成的操作。

我知道我必须将 pid 作为我相信的参数并发送 SIGKILL 信号。 使用类似

 kill(pid, SIGKILL);

当用户在 C 实现中输入“kill 2”时,如何连接此终止函数以做出响应?我想我很难将它连接到用于实现的命令行参数。我可能需要 strtok/atoi? 谢谢。

最佳答案

最好选择“getopt”,这可能看起来像是休闲,

#include <stdio.h>
#include <ctype.h>
#include <sys/types.h>
#include <signal.h>

int pid;
if((pid = getopt(argc, argv, "0123456789")) != -1)
    if(isdigit(pid)){
        if(kill(pid, SIGKILL) == -1){
            perror("KILL:");
            exit(0);
        }
    }else{
        printf("Input format: kill <pid>");
    }

关于C壳: kill process syntax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21845374/

相关文章:

c# - 如何在线程中运行方法并在线程退出时调用方法

objective-c - 如何获取 Mac 上所有正在运行的进程的列表?

javascript - 如何将 Ghostcript 生成到 Node.js 环境中

c - 在 C 中将字符串参数传递给kill()

c - 在子进程终止之前从父进程退出()程序

java - Java 中杀死或停止无休止/无返回值的线程

c - 如何获得这个C程序的输出?

c - 如何忽略自己广播的udp包

c - 初始化元素不是常量

c - 如何在 Flex 的另一个定义中使用以前的正则表达式定义?