Esempio n. 1
0
int main(int argc,char **argv) {
	uint64_t start,end;
	char path[MAX_PATH_LEN + 1] = "/bin/";
	if(argc < 2 || isHelpCmd(argc,argv))
		usage(argv[0]);

	strcat(path,argv[1]);
	if(signal(SIGINT,sigHdlr) == SIG_ERR)
		error("Unable to set sig-handler for signal %d",SIGINT);

	start = rdtsc();
	if((waitingPid = fork()) == 0) {
		size_t i;
		const char **args = (const char**)malloc(sizeof(char*) * (argc - 1));
		if(!args)
			error("Not enough mem");
		for(i = 1; i < (size_t)argc; i++)
			args[i - 1] = argv[i];
		args[argc - 1] = NULL;
		execvp(args[0],args);
		error("Exec failed");
	}
	else if(waitingPid < 0)
		error("Fork failed");
	else {
		sExitState state;
		int res;
		while(1) {
			res = waitchild(&state,-1);
			if(res != -EINTR)
				break;
		}
		end = rdtsc();
		if(res < 0)
			error("Wait failed");
		fprintf(stderr,"\n");
		fprintf(stderr,"Process %d (%s) terminated with exit-code %d\n",state.pid,path,state.exitCode);
		if(state.signal != SIG_COUNT)
			fprintf(stderr,"It was terminated by signal %d\n",state.signal);
		fprintf(stderr,"Runtime:		%Lu us\n",state.runtime);
		fprintf(stderr,"Realtime:		%Lu us\n",tsctotime(end - start));
		fprintf(stderr,"Scheduled:		%lu times\n",state.schedCount);
		fprintf(stderr,"Syscalls:		%lu\n",state.syscalls);
		fprintf(stderr,"Migrations:		%lu\n",state.migrations);
		fprintf(stderr,"Own mem:		%lu KiB\n",state.ownFrames * 4);
		fprintf(stderr,"Shared mem:		%lu KiB\n",state.sharedFrames * 4);
		fprintf(stderr,"Swapped:		%lu KiB\n",state.swapped * 4);
	}

	return EXIT_SUCCESS;
}
Esempio n. 2
0
int main(int argc,char *argv[]) {
	size_t i;
	if(argc < 2 || isHelpCmd(argc,argv)) {
		fprintf(stderr,"Usage: %s <module> [...]\n",argv[0]);
		fprintf(stderr,"	Available modules:\n");
		for(i = 0; i < ARRAY_SIZE(modules); i++)
			fprintf(stderr,"		%s\n",modules[i].name);
		return EXIT_FAILURE;
	}

	for(i = 0; i < ARRAY_SIZE(modules); i++) {
		if(strcmp(argv[1],modules[i].name) == 0)
			return modules[i].func(argc,argv);
	}

	fprintf(stderr,"Module '%s' does not exist\n",argv[1]);
	return EXIT_FAILURE;
}
Esempio n. 3
0
File: date.c Progetto: jarn0x/Escape
int main(int argc,char **argv) {
	char *fmt = (char*)"%c";
	char str[MAX_DATE_LEN];
	time_t now;
	struct tm *date;

	if((argc != 1 && argc != 2) || isHelpCmd(argc,argv)) {
		fprintf(stderr,"Usage: %s [<format>]\n",argv[0]);
		fprintf(stderr,"	<format> may be anything that dateToString() accepts\n");
		return EXIT_FAILURE;
	}

	/* use format from argument? */
	if(argc == 2)
		fmt = argv[1];

	now = time(NULL);
	date = gmtime(&now);
	strftime(str,sizeof(str),fmt,date);
	puts(str);
	return EXIT_SUCCESS;
}