首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fputs( _("") )下划线代表什么?

fputs( _("") )下划线代表什么?
EN

Stack Overflow用户
提问于 2012-05-13 01:53:24
回答 3查看 548关注 0票数 9

我终于让自己看了一些linux代码。我现在看的是"ls.c“。

在底部的函数"usage()“中,我发现了很多这样的语句:

代码语言:javascript
复制
  fputs (_("\
  List information about the FILEs (the current directory by default).\n\
  Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.\n\
  \n\
  "), stdout);

_("")是什么意思?它是像L"string“或_T"string”之类的东西,还是全新的东西?我还必须承认,我不知道用什么词来搜索这样的东西。

希望你能帮助我。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-13 01:59:06

这是libintl使用的约定。gettext,用于可翻译的字符串。运行时,gettext函数( _的别名)将返回原始或转换后的字符串,具体取决于区域设置和字符串的可用性。

票数 11
EN

Stack Overflow用户

发布于 2012-05-13 02:18:26

_是一个经常与the GNU gettext package一起使用的宏。

GNU gettext是一个包,它:

  • 获取供人类阅读的消息字符串列表以及这些字符串到其他语言的翻译,并将它们编译到名为gettext()的例程中,以便在该数据库中查找消息字符串,并将消息的翻译返回到特定语言。

如果程序想要以用户在环境变量中选择的语言打印消息,并由setlocale()调用拾取,它通常会执行如下操作

代码语言:javascript
复制
fprintf(stderr, gettext("I cannot open the file named %s\n"), filename);

gettext()将在数据库中查找字符串"I cannot find the file named %s\n"的适当翻译,并返回翻译后的字符串。

然而,这有点尴尬;as the documentation for GNU gettext notes,许多程序使用宏将_(string)设置为gettext(string)的别名。

票数 4
EN

Stack Overflow用户

发布于 2012-05-13 01:57:29

当然,函数名可以包含_,并且_可以作为函数名的开头。因此,可以简单地将函数命名为_

所发生的一切就是一个#define或一个实函数被称为_

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10566109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档