Переопределить глобальную функцию, такую как fopen/ofstream
Я хочу знать, какой файл открыт и в каком режиме, и для этого я хочу переопределить глобальные функции, такие как fopen / ofstream и другие функции обработки файлов.
Необходимые:
FILE* fopen(filename, mode){ //Our own fopen
printf("%s-%s",filename, mode)// print filename na dmode
return fopen(filename, mode); // actual fopen
}
void main(){
FILE * fp = fopen("name.txt", "w");
fprintf(fp, "%s", "hello World");
fclose(fp);
}
Вывод должен быть:name.txt-w
Одно из решений - создать оболочку с другим именем для fopen, но поскольку fopen вызывается из разных мест, я не хочу использовать другое имя.
Есть ли способ реализовать описанный выше сценарий?