#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include <dirent.h>


main(){

DIR *d;
struct dirent *de;
char command[1000];
char num[10];
int i;

d=opendir("/tandem/bin/tmp");
i=1;
for (de=readdir(d);de != NULL;de=readdir(d)){
  if (strncmp(de->d_name, ".",10) && strncmp(de->d_name, "..",10)){
i++;}}
if (i==1 || i>32){
  printf("Too few or too many files in the tmp directory\n");
  exit();}
switch(i){
  case 2: strncpy(num, "2",10);break;  
  case 3: strncpy(num, "3",10);break;
  case 4: strncpy(num, "4",10);break;
  case 5: strncpy(num, "5",10);break;
  case 6: strncpy(num, "6",10);break;
  case 7: strncpy(num, "7",10);break;
  case 8: strncpy(num, "8",10);break;
  case 9: strncpy(num, "9", 10);break;
  case 10: strncpy(num, "10", 10);break;
  case 11: strncpy(num, "11", 10);break;
  case 12: strncpy(num, "12", 12);break;
  case 13: strncpy(num, "13", 10);break;
  case 14: strncpy(num, "14", 10);break;
  case 15: strncpy(num, "15", 10);break;
  case 16: strncpy(num, "16",10);break;
  case 17: strncpy(num, "17", 10);break;
  case 18: strncpy(num, "18", 10);break;
  case 19: strncpy(num, "19", 10);break;
  case 20: strncpy(num, "20", 10);break;
  case 21: strncpy(num, "21", 10);break;
  case 22: strncpy(num, "22", 10);break;
  case 23: strncpy(num, "23", 10);break;
  case 24: strncpy(num, "24", 10);break;
  case 25: strncpy(num, "25", 10);break;
  case 26: strncpy(num, "26", 10);break;
  case 27: strncpy(num, "27", 10);break;
  case 28: strncpy(num, "28", 10);break;
  case 29: strncpy(num, "29", 10);break;
  case 30: strncpy(num, "30", 10);break;
  case 31: strncpy(num, "31", 10);break;
  case 32: strncpy(num, "32", 10);}

 strncpy(command, "mpirun -machinefile Machines -np ", 1000);
 strncat(command, num, 1000);
 strncat(command , " t_batch", 1000);
 printf("wrap.c: %s\n", command);
 system(command); 
}

