Bugün basename()
işlevi kullanmak zorunda kaldım ve man 3 basename
( burada ) bana garip bir mesaj verdi:
notlar
Orada iki farklı versiyonları vardır basename () - POSIX versiyonu yukarıda açıklanan ve GNU sürümü bir sonraki alır,
#define _GNU_SOURCE
#include <string.h>
Bunun ne #define _GNU_SOURCE
anlama geldiğini merak ediyorum : GNU ile ilgili bir lisansla yazdığım kodu renklendiriyor mu? Veya derleyiciye " Biliyorum, bu işlevler grubu POSIX değil, bu nedenle taşınabilir değil, ama yine de kullanmak istiyorum" gibi bir şey söylemek için kullanılır .
Öyleyse, neden bir işlev uygulaması veya diğeri almak için bazı belirsiz makro tanımlamak yerine insanlara farklı başlıklar vermiyorsunuz?
Bir şey de beni rahatsız ediyor: derleyici çalıştırılabilir dosya ile bağlantı kurmak için hangi fonksiyon uygulaması biliyor? Bunu da kullanıyor mu #define
?
Bana vermek için işaret eden var mı?
_GNU_SOURCE
elde etmekstrfry
ve olduğunu bilmekmemfrob
.