Mahlzeit!
char *basename(char *path);
die man page fängt schon gut an, da fehlt ein "const" und noch besser: "Warning: there are two different functions basename()". Und tatsächlich: "basename() may modify the contents of path". Unter Umständen bekomme ich die andere Version char *basename (const char *__filename); "The GNU version never modifies its argument"
Das ist mir zu unsicher. Oder kann ich beim Übersetzen oder zur Laufzeit prüfen, welche dazu gelinkt wurde?
Mit einer eigenen basename() wird keine aus der libc benutzt, aber das scheint mir auch nicht wasserdicht zu sein. Außerdem darf ich die nicht in meiner lib.h definieren, das wäre redundant.
Mit my_basename() oder base_name() wäre zwar alles einwandfrei sauber, aber das nützt mir nichts. Wer den Pfad aufspalten will, schreibt nicht my_ davor. OK, immerhin müsste ich dann nur prüfen, ob /irgendeine/ basename() dazu gelinkt wurde, aber wie?
Bitte, wie macht man das richtig, danke?