#include #include #include #include #include #include #include #include #include #include #define CHAR_BUFFER 256 #define FILE_LENGTH 1024 int createCmd(char *prog, char *params, char *addr, size_t adrrLength) { FILE * fd; fd = fopen(addr,"wx"); if(fd!=NULL) { fprintf(fd,"# File created by LoadLeveler DRMAA. If no LL DRMAA aplications are running you can delete this file\n"); fprintf(fd,"# @ initialdir = %s\n","/home/mamon/michal/5_1_wait"); fprintf(fd,"# @ executable = %s\n",prog); fprintf(fd,"# @ arguments = %s\n",params); fprintf(fd,"# @ output = %s.out\n",prog); fprintf(fd,"# @ error = %s.err\n",prog); fprintf(fd,"# @ queue\n"); fclose(fd); } else { perror("Can't create cmd file\n"); //przetestowac exit(1); } return 0; } int compare(char *ad1,char *ad2,size_t l1,size_t l2) { int i = 0; size_t min = l2; char * inx = ad2; if(l1 [args]\n"); return 1; } prog=mktemp(templateCmd); if(argc==3) createCmd(argv[1],argv[2],prog,CHAR_BUFFER); else createCmd(argv[1],"",prog,CHAR_BUFFER); fifoAddr=mktemp(templateFifo); status = llsubmit(prog,mon,fifoAddr,&test,LL_JOB_VERSION); remove(prog); llfree_job_info(&test,LL_JOB_VERSION); if(status==0) { char buffer[CHAR_BUFFER]; int idGot=1; //int i = 3; mkfifo(fifoAddr,0600); fd=fopen(fifoAddr,"r"); //x do { if(fgetline(buffer,sizeof(buffer),fd)!=-1) { if(idGot==1) { idGot=0; printf("Your job has been submitted with id %s\n",buffer); } } //printf("a: %s\n",buffer); } while(!endState(buffer,sizeof(buffer))); printf("End state: %s\n",buffer); fgetline(buffer,sizeof(buffer),fd); printf("Exit status: %s\n",buffer); fclose(fd); unlink(fifoAddr); } else printf("error\n"); return 0; }