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_SOURCEanlama 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_SOURCEelde etmekstrfryve olduğunu bilmekmemfrob.