История изменений
Исправление mersinvald, (текущая версия) :
Ну и в сишке так. Я про то что если там много освобождать, то приходиться копипастить до черту кода и править его везде.
По этому в сишке юзают такой прием, на что, видимо, и баттхертил ritsufag:
FILE* log_file = fopen(...);
if(!log_file)
goto end;
FILE* out_file = fopen(...);
if(!out_file)
goto close_log_file;
FILE* in_file = fopen(...);
if(!in_file)
goto close_out_file;
// Logic code
fclose(in_file);
close_out_file:
fclose(out_file);
close_log_file:
fcose(log_file);
end:
return errno;
Исходная версия mersinvald, :
Ну и в сишке так. Я про то что если там много освобождать, то приходиться копипастить до черту кода и править его везде.
По этому в сишке юзают такой прием, на что, видимо, и баттхертил ritsufag:
FILE* log_file = fopen(...);
if(!log_file)
goto end;
FILE* out_file = fopen(...);
if(!out_file)
goto close_log_file;
FILE* in_file = fopen(...);
if(!in_file)
goto close_out_file;
// Logic code
fclose(in_file);
close_out_file:
fclose(out_file);
close_log_file:
fcose(log_file);