Int Int Char: #Include #Include #Include #Include #Include

Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

10.05.2014 main.

c 1
/home/marvin/Workspaces/C++/JavaLauncher/main.c
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <sys/stat.h>
int main(int argc, char* argv[]){
if(argc <= 1){
FILE *config = fopen("./run", "r");

if(config){
int length = 0;
fscanf(config, "%d", &length);
printf("Length: %d\n", length);

char cmd[length + 1];
cmd[length] = '\0';
fread(cmd, sizeof(char), length, config);


fclose(config);

pid_t child = fork();

if(child == 0){
printf("run java -jar %s:\n\n", cmd);
execlp("java", "java", "-jar", cmd, NULL);
}else if(child > 0){
wait(child);
printf("\n\nEXIT\n");
}else{
perror("Fork Error:");
}

}else{

printf("file not found. cannot run .jar without configuration\n");
printf("run javalauncher <name.jar> <path to name.jar>\n");

}
}else if(argc == 3){
int length_jar = strlen(argv[1]);

char file[strlen(argv[2]) + 3 + 1];
file[strlen(argv[2]) + 3] = '\0';
strcpy(file, argv[2]);

char *run_ext = "run";
strcpy(file + strlen(argv[2]), run_ext);

printf("Write to %s\n", file);

FILE *run = fopen(file, "w");

if(run){

fprintf(run, "%d%s", length_jar, argv[1]);

fclose(run);

}else{
perror("CAnnot open file:");
}

10.05.2014 main.c 2
/home/marvin/Workspaces/C++/JavaLauncher/main.c
printf("Copy launcher %s\n", argv[0]);

FILE *launcher_in = fopen(argv[0], "r");

if(launcher_in){

char fout[strlen(argv[2]) + strlen(argv[1]) + 9 + 1];
fout[strlen(argv[2]) + strlen(argv[1]) + 9] = '\0';

char *postfix = "-Launcher";

strcpy(fout, argv[2]);
strcpy(fout + strlen(argv[2]), argv[1]);
strcpy(fout + strlen(argv[2]) + strlen(argv[1]), postfix);

printf("Write to %s\n", fout);

FILE *launcher_out = fopen(fout, "w");

if(launcher_out){
char buf[50];
size_t read_num = 0;
while((read_num = fread(buf, sizeof(char), 50, launcher_in))){
fwrite(buf, sizeof(char), read_num, launcher_out);
}
fclose(launcher_out);
printf("Make launcher executable\n");
chmod(fout, S_IRWXU | S_IRWXG | S_IXOTH);
printf("All done.\n");
}else{
perror("Cannot open file:");
}

fclose(launcher_in);
}else{
perror("Cannot open file:");
}

}else{
printf("run javalauncher <name.jar> <path to name.jar>\n");
}
return EXIT_SUCCESS;
}

You might also like