У меня следующий код на C. Я пытаюсь найти строку, начинающуюся с известного слова, чтобы записать эту строку с новой информацией.Проблема, которую я нахожу, состоит в том, что поток fp уже находится после строки, которую я хочу редактировать, как только я ее найду, поэтому мне нужно вернуться к этой строке, чтобы написать ее.Как я мог это сделать?Спасибо.
FILE *fp;
char line[256];
char description[128];
memset(description, 0, sizeof (description));
if (!(fp = (FILE*) fopen("/etc/samba/smb.conf", "r+"))) {
printf("Error opening smb.conf\n");
return -1;
}
while (fgets(line, sizeof line, fp)) {
if (!strncmp(line, "comment =", 9)) {
sscanf(line, "comment = %[^\t\n]", description);
printf("Old comment found: %s\n",description);
fprintf(fp, "comment = %s\n", "New Comment here");
}
}
fclose(fp);