Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,60 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#define INOUT_LEN 4
|
||||
#define TIME_LEN 20
|
||||
#define MAX_MAXOUT 1000
|
||||
|
||||
char inout[INOUT_LEN];
|
||||
char time[TIME_LEN];
|
||||
uint jobnum;
|
||||
|
||||
char maxtime[MAX_MAXOUT][TIME_LEN];
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
FILE *in = NULL;
|
||||
int l_out = 0, maxout=-1, maxcount=0;
|
||||
|
||||
if ( argc > 1 ) {
|
||||
in = fopen(argv[1], "r");
|
||||
if ( in == NULL ) {
|
||||
fprintf(stderr, "cannot read %s\n", argv[1]);
|
||||
exit(1);
|
||||
}
|
||||
} else {
|
||||
in = stdin;
|
||||
}
|
||||
|
||||
while( fscanf(in, "License %s @ %s for job %u\n", inout, time, &jobnum) != EOF ) {
|
||||
|
||||
if ( strcmp(inout, "OUT") == 0 )
|
||||
l_out++;
|
||||
else
|
||||
l_out--;
|
||||
|
||||
if ( l_out > maxout ) {
|
||||
maxout = l_out;
|
||||
maxcount=0; maxtime[0][0] = '\0';
|
||||
}
|
||||
if ( l_out == maxout ) {
|
||||
if ( maxcount < MAX_MAXOUT ) {
|
||||
strncpy(maxtime[maxcount], time, TIME_LEN);
|
||||
maxcount++;
|
||||
} else {
|
||||
fprintf(stderr, "increase MAX_MAXOUT (now it is %u)\n", MAX_MAXOUT);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
printf("Maximum simultaneous license use is %d at the following times:\n", maxout);
|
||||
for(l_out=0; l_out < maxcount; l_out++) {
|
||||
printf("%s\n", maxtime[l_out]);
|
||||
}
|
||||
|
||||
if ( in != stdin ) fclose(in);
|
||||
exit(0);
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/mman.h>
|
||||
#include <err.h>
|
||||
#include <string.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
struct stat s;
|
||||
int fd = open("mlijobs.txt", O_RDONLY);
|
||||
int cnt, max_cnt, occur;
|
||||
char *buf, *ptr;
|
||||
|
||||
if (fd == -1) err(1, "open");
|
||||
fstat(fd, &s);
|
||||
ptr = buf = mmap(0, s.st_size, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
|
||||
|
||||
cnt = max_cnt = 0;
|
||||
while(ptr - buf < s.st_size - 33) {
|
||||
if (!strncmp(ptr, "License OUT", 11) && ++cnt >= max_cnt) {
|
||||
if (cnt > max_cnt) {
|
||||
max_cnt = cnt;
|
||||
occur = 0;
|
||||
}
|
||||
/* can't sprintf time stamp: might overlap */
|
||||
memmove(buf + 26 * occur, ptr + 14, 19);
|
||||
sprintf(buf + 26 * occur + 19, "%6d\n", cnt);
|
||||
occur++;
|
||||
} else if (!strncmp(ptr, "License IN ", 11)) cnt --;
|
||||
|
||||
while (ptr < buf + s.st_size && *ptr++ != '\n');
|
||||
}
|
||||
|
||||
printf(buf);
|
||||
munmap(buf, s.st_size);
|
||||
return close(fd);
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
2008/10/03_08:39:34 99
|
||||
2008/10/03_08:40:40 99
|
||||
Loading…
Add table
Add a link
Reference in a new issue