18 #include <my_global.h>
21 #include <my_getopt.h>
25 static const char *VER=
"1.1";
26 static char *progname;
27 static my_bool verbose;
31 static struct my_option my_long_options[] =
33 {
"help",
'?',
"Display this help and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0,
35 {
"help",
'I',
"Synonym for -?.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0,
38 "Be more verbose. Give a warning, if kill can't handle signal 0.",
39 &verbose, &verbose, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
40 {
"version",
'V',
"Print version information and exit.", 0, 0, 0,
41 GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
42 { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
46 get_one_option(
int optid,
const struct my_option *opt __attribute__((unused)),
47 char *argument __attribute__((unused)))
51 printf(
"%s version %s by Jani Tolonen\n", progname, VER);
61 int main(
int argc,
char *argv[])
63 int pid= 0, t= 0, sig= 0;
67 if (handle_options(&argc, &argv, my_long_options, get_one_option))
69 if (!argv[0] || !argv[1] || (pid= atoi(argv[0])) <= 0 ||
70 (t= atoi(argv[1])) <= 0)
74 if (
kill((pid_t) pid, sig))
79 printf(
"WARNING: kill couldn't handle signal 0, using signal 1.\n");
93 printf(
"%s version %s by Jani Tolonen\n\n", progname, VER);
94 printf(
"usage: %s [options] #pid #time\n\n", progname);
95 printf(
"Description: Waits for a program, which program id is #pid, to\n");
96 printf(
"terminate within #time seconds. If the program terminates within\n");
97 printf(
"this time, or if the #pid no longer exists, value 0 is returned.\n");
98 printf(
"Otherwise 1 is returned. Both #pid and #time must be positive\n");
99 printf(
"integer arguments.\n\n");
100 printf(
"Options:\n");
101 my_print_help(my_long_options);