A
Size: a a a
A
gо
#define CHECKED(var, label, syscall) var = syscall; if (var == -1) goto label;как-то так, например
CHECKED(resource1, final, first_syscall(args));
CHECKED(resource2, cleanup1, second_syscall(args));
CHECKED(resource3, cleanup2, third_syscall(args));
do_something(resource1, resource2, resource3);
free_resource(resource3);
cleanup2:
free_resource(resource2);
cleanup1:
free_resource(resource1);
exit:
return
A
A
A
gо
gо
A
A
A
AS
A
A
MK
B
М
B
AS
М