我試圖用C程序(僅用於學習)模擬UNIX的grep 模式。我寫是給我一個運行時間錯誤的代碼..使用UNIX的read()系統調用來查找用戶給定的模式
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#define MAXLENGTH 1000
char userBuf[MAXLENGTH];
int main (int argc, char *argv[])
{
int numOfBytes,fd,i;
if (argc != 2)
printf("Supply correct number of arguments.\n");
//exit(1);
fd =open("pattern.txt",O_RDWR);
if (fd == -1)
printf("File does not exist.\n");
//exit(1);
while ((numOfBytes = read(fd,userBuf,MAXLENGTH)) > 0)
;
printf("NumOfBytes = %d\n",numOfBytes);
for(i=0;userBuf[i] != '\0'; ++i)
{
if (strstr(userBuf,argv[1]))
printf("%s\n",userBuf);
}
}
的程序被無限打印時,含有圖案行。我試過調試,但無法找出錯誤。請讓我知道我錯了,
感謝
*「我試過調試」*不是很清楚。你嘗試了什麼?遍歷調試器中的代碼?插入推測的'printf'來探究發生了什麼? – dmckee
是的。非常好。 – Kelly