813300126f8471e6f94e45e1fd5c265b3a732001
[util-vserver.git] / tests / getinitpid.c
1 // $Id: getinitpid.c,v 1.3 2004/01/21 19:06:14 ensc Exp $    --*- c++ -*--
2
3 // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
4 //  
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; version 2 of the License.
8 //  
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 // GNU General Public License for more details.
13 //  
14 // You should have received a copy of the GNU General Public License
15 // along with this program; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
18
19 #ifdef HAVE_CONFIG_H
20 #  include <config.h>
21 #endif
22
23 #include "compat.h"
24 #include "vserver.h"
25 #include "internal.h"
26 #include "src/util.h"
27
28 #include <stdio.h>
29 #include <stdlib.h>
30 #include <unistd.h>
31
32 int main(int argc, char *argv[])
33 {
34   char                  buf[sizeof(int)*3+2];
35   xid_t                 xid;
36   struct vc_vx_info     info;
37   
38   if (argc==1) xid = vc_get_task_xid(0);
39   else         xid = vc_get_task_xid(atoi(argv[1]));
40
41   if (xid==VC_NOCTX) {
42     perror("vc_get_task_xid()");
43     return EXIT_FAILURE;
44   }
45
46   if (vc_get_vx_info(xid, &info)==-1) {
47     perror("vc_get_vx_info()");
48     return EXIT_FAILURE;
49   }
50
51   utilvserver_fmt_int(buf, info.initpid);
52
53   WRITE_STR(1, buf);
54   WRITE_MSG(1, "\n");
55
56   return 0;
57 }