Endlich habe ich mich selbst etwas Linux-Code angeschaut. Ich schaue gerade auf "ls.c".
Bei der Funktion "usage ()" unten habe ich viele dieser Aussagen gefunden:
%Vor%Was bedeutet _ ("")? Ist es etwas wie L "string" oder _T "string" oder etwas völlig neues? Ich muss auch zugeben, dass ich nicht weiß, mit welchen Worten ich nach so etwas suchen kann.
Ich hoffe, du kannst mir helfen.
Es ist eine Konvention, die von libintl a.k.a.gettext für übersetzbare Zeichenfolgen verwendet wird. Wenn es ausgeführt wird, gibt gettext
function (dem _
Alias zugewiesen ist) entweder die ursprüngliche oder die übersetzte Zeichenfolge zurück, abhängig von den Gebietsschemaeinstellungen und der Verfügbarkeit der Zeichenfolge.
_
ist ein Makro, das oft mit dem GNU gettext-Paket verwendet wird.
GNU gettext ist ein Paket, das:
gettext()
zur Verfügung, um Nachrichtenstrings in dieser Datenbank nachzuschlagen und die Übersetzung für die Nachricht in eine bestimmte Sprache zurückzugeben. Wenn ein Programm eine Nachricht in der Sprache drucken wollte, die vom Benutzer in einer Umgebungsvariablen ausgewählt und von einem setlocale()
-Aufruf abgerufen wurde, würde es normalerweise etwas wie
gettext()
sucht die entsprechende Übersetzung der Zeichenkette "I cannot find the file named %s\n"
in der Datenbank und gibt die übersetzte Zeichenkette zurück.
Aber das ist ein bisschen peinlich; als Dokumentation für GNU-Gettext-Notizen verwenden viele Programme ein Makro, um es einfach zu machen _(
Zeichenfolge )
ist ein Alias für gettext(
Zeichenfolge )
.
Funktionsnamen können natürlich ein _
enthalten, und ein _
kann einen Funktionsnamen beginnen. So ist es möglich, einfach eine Funktion namens _
zu benennen.
Alles was passiert, ist, dass eine #define
oder eine echte Funktion _
heißt.
Tags und Links c