vshost-util-vserver

Build script and sources for util-vserver.
git clone https://ccx.te2000.cz/git/vshost-util-vserver
Log | Files | Refs

testopenf.c (1549B)


      1 // $Id$
      2 
      3 // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
      4 // based on tests/testopenf.cc by Jacques Gelinas
      5 //  
      6 // This program is free software; you can redistribute it and/or modify
      7 // it under the terms of the GNU General Public License as published by
      8 // the Free Software Foundation; either version 2, or (at your option)
      9 // any later version.
     10 //  
     11 // This program is distributed in the hope that it will be useful,
     12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
     13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     14 // GNU General Public License for more details.
     15 //  
     16 // You should have received a copy of the GNU General Public License
     17 // along with this program; if not, write to the Free Software
     18 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
     19 
     20 #include <stdio.h>
     21 #include <stdlib.h>
     22 #include <sys/wait.h>
     23 #include <string.h>
     24 #include <errno.h>
     25 #include <unistd.h>
     26 
     27 int main (int argc, char *argv[])
     28 {
     29 	if (argc != 3){
     30 		fprintf (stderr,"testlimit nbprocess nbopen\n");
     31 	}else{
     32 		int nbproc = atoi(argv[1]);
     33 		int nbopen = atoi(argv[2]);
     34 		int i;
     35 		int status;
     36 		for (i=0; i<nbproc; i++){
     37 			if (fork()==0){
     38 				int j;
     39 				for (j=0; j<nbopen; j++){
     40 					FILE *fin = fopen ("/proc/self/status","r");
     41 					if (fin == NULL){
     42 						fprintf (stderr,"Can't open %d (%s)\n",errno,strerror(errno));
     43 						break;
     44 					}
     45 				}
     46 				printf ("%d open files, sleeping\n",j);
     47 				sleep (100);
     48 				_exit (0);
     49 			}
     50 		}
     51 		while (wait(&status)!=-1);
     52 	}
     53 	return 0;
     54 }
     55