Переопределить глобальную функцию, такую ​​как 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 вызывается из разных мест, я не хочу использовать другое имя.

Есть ли способ реализовать описанный выше сценарий?

0 ответов

Другие вопросы по тегам