0
int compare_filenames(char* data, char* filename){
    //note: we only have 31 directory/file entries within a block
    int i;
    int offset;
    //printf("argument %s\n", filename);
    for(i = 0; i < BLOCK_SIZE; i+=16){
        if(strcmp(filename, &data[i])){
            offset = i + 12;

            return data[i+12];// double check here
        }

    }
    return ERR_FILE_NOT_FOUND; //didn't find it within
}

对于某些共振,即使第一个元素正好在开头,strcmp 也会经历两次循环迭代

4

2 回答 2

4

strcmp() 当它们相等时返回 0。如果一个大于或小于另一个,您将返回。

于 2011-04-23T22:34:35.287 回答
3

你想做的strcmp(filename, &data[i]) == 0

0 表示字符串之间的匹配,评估为假...

于 2011-04-23T22:34:50.653 回答