2010-09-24 226 views
0

我试图运行一个模拟程序来测试FIFO算法,但是我的程序只是崩溃。这是主要的,其他功能未显示。任何人都可以点我的problem.Am不是那么熟悉使用的主要论点[INT主(INT ARGC,CHAR *的argv []) 我有一个文件夹运行FIFO模拟

int main(int argc, char *argv[]) 
    { 
    FILE *stream; 

    if (argc != 3) 
{ 
printf("The format is: pager file_name memory_size.\n"); 
//exit(1); 
} 

    printf("File used %s, resident set size %d\n", argv[1], atoi(argv[2])); 

if ((stream = fopen(argv[1], "r")) == NULL) 
{ 
    perror("File open failed"); 
//exit(1); 
} 
    mem_size = atoi(argv[2]); 
start_simulation(stream); 
fclose(stream); 
system("pause"); 
} 
+0

我猜使用时,这可能会导致死机'mem_size'是全局变量,你没有任何语法错误。 – Dan 2010-09-24 09:55:49

+1

你可以用gdb来找出它崩溃的哪一行吗? – AlcubierreDrive 2010-09-24 09:56:28

+1

它究竟如何崩溃?如果你评论你的代码,一行一行但保持可编译,当它停止崩溃? – Alin 2010-09-24 09:58:21

回答

0

取消注释在测试文件的调用退出。

if (argc != 3) { 
// insufficient arguments passed..print error and exit. 
printf("The format is: pager file_name memory_size.\n"); 
exit(1); 
} 

在你的情况(出口评论)如果您不提供CMD行参数,argv[1]NULLfopen

+0

嗯,只是注意到它没有打开文件stream.if我取消了退出(1),它退出了立即。 – 2010-09-24 10:18:48

+0

它正在退出,因为您没有提供足够的cmd行参数,而这正是我们想要的。 – codaddict 2010-09-24 10:20:11

+0

Linux还是Windows? – codaddict 2010-09-24 11:13:01