Подскажите пожалуйста, как мне сделать поиск в бинарном файле?
У меня есть моя программка, но она ищет только в текстовых файлах.
Вот моя программка:
Код: Выделить всё
#include <stdio.h>
#include <string.h>
#include <ctype.h>
char* strlwr(char*);
int main(int argc, char *argv[]) {
FILE *fd;
char buffer[255];
int bufflen;
char *result;
bufflen = 255;
if (argc != 2) {
printf("\nUsage: find_str <file>\n\n");
exit(1);
}
if ((fd = fopen(argv[1], "r")) == NULL) {
fprintf(stderr, "\"%s\": don't open\n", argv[1]);
exit(1);
}
while (result = fgets(buffer, bufflen, fd)) {
result = strlwr(result);
//printf(result);
if (strstr(result, "what_find")) {
printf("I finded it!\n");
}
}
fclose(fd);
return 0;
}
char* strlwr(char* str) {
int i;
int lg = strlen(str);
for (i=0; i<lg; i++)
str[i] = tolower(str[i]);
return str;
}Когдя я добавил "b" в эту строку: if ((fd = fopen(argv[1], "rb")) == NULL)
то все, что я получил - это segmentation fault.
Помогите пожалуйста.
Еще я нашел исполняемую программу /usr/bin/strings - она классно работает. Мне также надо просматривать файл. А исходника у меня нет. Да и здоровый он наверно. Мне простенько надо.