Home:ALL Converter>Trouble calling the Unix command kill(int PID) through c program

Trouble calling the Unix command kill(int PID) through c program

Ask Time:2013-09-17T15:47:58         Author:Mitch

Json Formatter

I am writing a program in C in one of my systems classes. We write c code and run it in a unix environment. I have looked all over the internet, but can't seem to find any way to make the kill(int PID) command work. The code will compile and run fine, but if I use the

ps -u username

command in a unix command prompt (after execution has completed of course,) it says that the all of the processes I tried to kill in my c code are still running. I can kill them from the unix command prompt by manually entering their PIDs, but for the life of me, I cannot figure out how to do it inside of my program.

In this particular program, I am trying to kill process CC, which is a process that just infinitely calls usleep(100); until terminated.

I tried using kill(C3, -9); and variations of execlp("kill", "kill", C3, (char *)0); but still no luck. Does anyone have any idea what I am doing wrong here? My only guess is that the kill command is being passed the wrong PID parameter, but if that's the case, I have no idea how I would get the correct one.

EDIT: Also, the kill command returns a value of zero, which I believe means that it "succeeded" in executing the command.

EDIT: Just noticed that the solution to my problem was in the instructions for the assignment all along. Yup. I'm stupid.

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

int main(int args, char* argv[])
{
        //
        //Step 7
        //
        //Create process C3
        int C3=fork();
        if (C3==0)
        {
                execlp("CC", "CC", (char *)0);
        }
        else
        {
        usleep(500000);
        //
        //Step 8
        //
        int ps=fork();
        if (ps==0)
        {
                execlp("ps", "ps", "-u", "cooley", (char *)0);
        }
        else
        {
                wait(NULL);
                kill(C3);
        }
        }
        exit(0);
}

Author:Mitch,eproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/18844143/trouble-calling-the-unix-command-killint-pid-through-c-program
yy