编写像cmp for Unix这样的实用程序来处理可选的[SKIP]参数

时间:2013-04-19 15:28:53

标签: c++ c linux unix while-loop

我需要在C中使用像cmp这样的实用程序。 cmp比较两个文件并输出不同的第一个char的数量。

cmp [-s] file1 file2 [SKIP1] [SKIP2]

我做得很好,但是在跳过字符时我遇到了一些麻烦。 n个字符后SKIP1用于比较file1,n个字符后用SKIP2进行比较file2

部分代码:

...
while ((fgets(filebuff,  MAXLINE, file1)) != NULL && 
       (fgets(filebuff2, MAXLINE, file2)) != NULL)
{
    ++linepos;
    same = compare_str(filebuff, filebuff2); // my function that return 0 if equal and change pos of first diff element 
    if (same != 0)
    {
        fclose(file1);
        fclose(file2);
        printf("differ: char %i, line %i\n",charpos,linepos);
        return 1;
    }
}
fclose(file1);
fclose(file2);
return 0;

我不知道如何从SKIP1或SKIP2开始比较。

while ((fgets(filebuff, MAXLINE, file1))!=NULL && (fgets(filebuff2, MAXLINE, file2)) != NULL)

此代码逐行读取文件,每个文件的每一行都发送到函数。我不想改变我的比较功能。我需要发送已剪切的字符串。也许从n位开始循环fgets(),但我不知道如何。

0 个答案:

没有答案