所以我只是想知道关于做一个调度程序模拟的几个技巧。处理输入文件在c
到目前为止,我只是想输入在命令行即/.scheduler in.file
的in.file拥有以下信息的文件:
./Job1.txt
./Job2.txt
./Job3.txt
./Job4.txt
每个工作.txt文件有随机的代码行。只有第一行是重要的。第一行开始“打勾”时间。
工作答:
10
1fi
3sdkfj
4ksdkk
5kdkfk
6kdkjf
7dkjkfd
9dkkf
10dku
此刻,我只想拿in.file和订购他们的到来滴答的时间即第一行的顺序“工作”的文件。
我的代码迄今:
#include <errno.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "projscheduler.h"
/* I/O Files */
//static char *inputFile;
char * in;
static FILE *input;
/*Scheduled jobs indexed by PID*/
struct job list[20];
/* the next job to schedule */
//static struct job *job_next = NULL;
/* Time */
time clock;
/*Initialises job list*/
static void initialise_list(void) {
for(int i = 0; i < sizeof(list)/sizeof(list[0]); i++) {
list[i].parameters.pid = -1;
}
}
/** Read and parse input from input file */
static void parse_input(void)
{
char buffer[BUFSIZ];
//int jobs;
initialise_list();
while(fgets(buffer, sizeof(buffer), input))
{
pid j_pid;
sscanf(buffer, "./%d.txt", &j_pid);
}
}
int main(int argc, char **argv)
{
if ((input = fopen(in, "r")) == NULL) {
fprintf(stderr, "cannot open %s\n", argv[1]);
}
parse_input();
return EXIT_SUCCESS;
}
头文件:
/**
* Simulation of a process scheduler
*/
//#ifndef SCHEDULER_H_
#define SCHEDULER_H_
#include <stddef.h>
/* types */
/** units of time */
typedef long time;
/** process identifier */
typedef int pid;
/** Information about a job of interest to the task scheduler */
struct job_data {
/* pid of this process */
pid pid;
/* time process starts */
time start;
/* time needed to finish */
time finish;
/* time spent processing so far */
time scheduled;
/* size of the process */
size_t size;
};
struct job {
/* Various parameters used by the scheduler */
char job_name[BUFSIZ];
struct job_data parameters;
/* next job to be scheduled */
//struct job *next;
};
或许这是应该继续下去代码审查。 –
我的不好!对不起,我只是审查它,因为我havnt睡觉!我已经取得了进展... –