2010-09-24 228 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