GB/T32395-2015

信息技术中文Linux操作系统应用编程接口(API)扩充要求

Informationtechnology—ExtendedrequirementsofApplicationProgrammingInterface(API)forChineseLinuxoperatingsystem

本文分享国家标准信息技术中文Linux操作系统应用编程接口(API)扩充要求的全文阅读和高清PDF的下载,信息技术中文Linux操作系统应用编程接口(API)扩充要求的编号:GB/T32395-2015。信息技术中文Linux操作系统应用编程接口(API)扩充要求共有29页,发布于2016-07-01
  • 中国标准分类号(CCS)L74
  • 国际标准分类号(ICS)35.060
  • 实施日期2016-07-01
  • 文件格式PDF
  • 文本页数29页
  • 文件大小519.19KB

以图片形式预览信息技术中文Linux操作系统应用编程接口(API)扩充要求

信息技术中文Linux操作系统应用编程接口(API)扩充要求


国家标准 GB/T32395一2015 信息技术中文Linx操作系统应用编程 接口(API)扩充要求 Informatiotechnology一ExtendedrequirementsoApplieationProgramming lnterftaee(AP)torChineseLinasuperatingsystem" 2015-12-31发布 2016-07-01实施 中毕人民共和国国家质量监督检验检疫总局 发布 中 国国家标准化管厘委员会国家标准
GB/T32395一2015 目 次 前言 范围 规范性引用文件 术语、定义及缩略语 便利丽数库libelutil libelutil接口 4.l 4.2libclutil数据定义 4.3libclutil接口定义 4.3. Desktopentry相关接口 4.3.2MIME类型相关接口 1" 4.3.3应用程序描述文件相关接口 + 16 4.3.4启动菜单相关接口 19 4.3.5图标相关接口 20 4.3.6RecentFile相关接口 4.3.7打开特定的应用程序相关接口 农历函数库Iiblu unar-l 5.1 22 liblunar-1接口 22 5.2liblunar-1数据定义 5.3liblunar-1接口定义 23 5.3.1初始化 23 5.3.2日期转换接口 23
GB/T32395一2015 前 言 本标准按照GB/T1.1一2009给出的规则起草 本标准由全国信息技术标准化技术委员会(SAc/TC28)提出并归口 请注意本文件的某些内容可能涉及专利 本文件的发布机构不承担识别这些专利的责任 本标准起草单位;中标软件有限公司、工业和信息化部电子工业标准化研究院、新华科技(南京)系 统软件有限公司、北京中科红旗软件技术有限公司、北京赛西科技发展有限责任公司、北京络威尔软件 有限公司,北京大学(计算机科学技术研究所),清华大学、北京即时俊业软件有限公司,北京法国电信研 发中心有限公司,太阳计算机系统()有限公司、苏州开源先锋软件有限公司 本标准主要起草人;张东,苗宗利武校田、张永军,谢谦、李祥凯、吴鹏、孙廉杰、韦韬、陶品、霍东灵、 陆伯鹰、张相峰、膝召智
GB/T32395一2015 信息技术中文Limux操作系统应用编程 接口(AP)扩充要求 范围 本标准规定了中文Linux操作系统应提供的应用编程接口,包括便利函数库与农历函数库,为 Linux下应用的开发与部署提供便利,以提高Linx应用程序的可移植性 本标准适用于Linux操作系统开发、应用与维护 规范性引用文件 下列文件对于本文件的应用是必不可少的 凡是注日期的引用文件,仅注日期的版本适用于本文 件 凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件 IsO/IEC23360-1Liux标准集核心规范3.1第1部分通用规范[LinuxStandardBase (L.SB)corespeeifcation3.1一Part1:Generiecspeeification] RFC822ARPA的互联网文本消息的格式标准(StandardfortheFormatofARPAInternetText Messages) 桌面人口规范(DesktopEntrySpecifieation) http://standards,freedesktop.org/desktop-entry-spec/latest/index.html 桌面菜单规范(DesktopMenuSpeeification) http://www.reedesktop.org/wilki/Specifications/menuspec 基础文件规范BasedirectorySpecification //www.freedesktop.org/wiki/Specifications/basedir-spec htp:/ 共享MIME数据库shared database) //www,freedesktop.org/wiki/Specifications/shared-mime-info=spec http:/ 主题图标规范IconThemespeeification) htp://www.freedesktop.org/wiki/Speifieations/ieonthemcspe ecification 最近访问文件规范(TheRecentFile spec /wiki/Specifications/recent tflepee http://www.freedesktop.org人 rcification 自动启动规范(Autostartspee /wiki/Specifieations/autostartspee http:7 //www.ireedesktop.org/w 术语、定义及缩略语 3.1术语和定义 下列术语和定义适用于本文件 3.1.1 动态连接dyameclnking 应用程序开始执行时才实际连接到所需函数库代码上的连接方式
GB/T32395一2015 3.1.2 共享对象名shareobjeetname(somame' 存在于动态连接丽数库中,在丽数库构造阶段指定的用于标识自身的符号,应用程序编译阶段据此 指定需要连接的函数库,执行阶段据此实现动态连接 通过这种机制,同一动态连接函数库的多个版本 可以在系统上并存 3.1.3 动态连接器dlynamiclinker 系统提供的用于实现动态连接的程序 动态连接器检查应用程序,发现所需函数库的共享对象名 进而找到函数库的实际存放位置,读人内存并实现连接 3.1.4 桌面条目Desktopentry 符合桌面条目规范,其Type项值为“Application",并且以“.desktop"为结尾命名的文件 桌面条 目描述了一个菜单项,包名称,图标,以及该项被选中时应做什么 3.1.5 目录条目ireectoryentry 符合桌面条目规范,其Type项值为“Direetory",并且以“.directory”为结尾命名的文件 目录条目 描述了一个子菜单的本地化名称和图标 3.1.6 菜单路径Memupath 通往一个特定菜单的路径 菜单路径是相对路径,不应以字母斜杠(“/”)开始 一个菜单路径由其 父菜单路径名称及其菜单自己的名称组成,例如“Foo/Bar/Baz”就是一个有效菜单路径 3.1.7 图标ion" -种显示在屏幕上,用户能以某一器件(例如鼠标)对其指点,以便选出特定的功能或应用软件的图 形符号 这种图形符号通常是一种图片表示 3.1.8 图标主题icontheme -组图标的总称,用于将图标名称及尺寸影射到一个文件,主题可以继承其他主题并对它们进行 扩展 3.1.9 图标文件iconfile 个可被加载并用作图标的图像 支持的文件类型包括;PNG,XPM、sVvG,PNG是推荐使用的位 图格式;支持XPM原因是为了向后兼容,建议新的主题不使用XPM文件;svG是矢量图标,对svG 的支持是可选的 3.1.10 本地环境loeale 对用户环境中与语言和文化习俗相关子集的定义 3.2缩略语 下列缩略语适用于本文件 L.sB Linux标准集(LinuxStandardBase) MIME多用途网际邮件扩充协议(MulipurposelnternetMailExtensions) PNG 可移植网络图形格式(PortableNetworkGraphicFormat,PNG)
GB/T32395一2015 svG 可缩放矢量图形(ScalableVectorGraphics) xXPMX像图(XPixMap) 便利函数库libelutil 4.1libelutil接口 便利函数库是为方便应用程序开商开发跨不同Linux操作系统发布平台的应用程序而提供的公共 基础性设施,功能包括创建文件类型,创建应用程序描述文件,创建程序启动菜单 表1定义了Iibcutil的库名及共享对象名 丽数库的存放位置是实现定义的,但应在动态连接器 的搜索目录中 表1lihelutil定义 库名 ibclutil 共享对象名 libclutil.so.l 符合本标准的实现应提供表2中定义的接口 表2libclutil接口 desktop_entry_new desktop_entry_free desktop_entry_firstsectionm desktop_entry_nextsection desktop_entry_addseetionm desktop_entry_delseetion desktopentryirstitem desktopentrynextitem desktop_entry_getitem desktop_entry_getitem_utf8 desktop_entry_setitemm desktop_entry_setitem_utf8 desktop-enty_from_file desktop_entry_delitem desktop_entry_to_file mimetype_new mimetype_get mimetype_set mimetype_delete nmimetype_add_magie progdeSC_new progdesc_get progdesc_set progdesc_delete applink_ereate applink_delete applink_fast_create icon_add icon_delete recent_file_add recent_file_delete eluil_openm clutiemail
GB/T32395一2015 4.2lihelutil数据定义 clutil.h typedefstruerdesktop_entry desktop_entry_t; *错误返回值 enum ERR_INVAL. ×无效参数 × 关 LERR_2XIsr,/*文件或desktopeantry项等已存在 ERRNOEXsT,/×文件或desktopentry项等不存在 ERRNOEMPTY,/*指定的项非空 ERR_NOTFILE./*指定文件名不是一个文件 ERR_FULL. /×指定结构空间已满 ERRNOTSUUPER. /*不是特权用户 ERR_PERM,/×无访问权限 CL_ERR_UNKNwN/*未知错误 Iibelutil接口定义 4.3 4.3.1Desktopentry相关接口 4.3.1.1desktop_entry_new 名称 创建新的DesktopEntry desktop_entry_new 格式 井includeclutil.h desktopG entrynew(); -entry_Idlekiop 参数 无 描述 try 本标准所涉及的DesktopEatry应符合DesktopEntry 该函数用于创建新的DesktopEnt Specification的要求 该函数所返回的desktop_entry_t类型,为DesktopEntry的操作指针,应被如下定义 structdeskte ypedef desktop_entry_t top_entry 其中 _entry的具体内容是实现定义的,可以是对应用程序透明的 structdes sktop 应用程序应可使用函数desktop_entry_getitem()或desktop_entry_getitem_utf8()对该结构体的 内容进行读取;使用函数desktop_entry_setitem()或desktop_entry_setitem_utf8()设置该结构体的内 容;使用函数desktop_entry_free()释放该结构体的内容;而不必直接访问或修改结构体中的内容 应用程序通过该函数创建的DesktopEntry,当不再使用时,应通过调用desktop_entry_free()释放 所创建的DesktopEntry 返回值 成功时返回一个有效的DesktopEntry指针;失败返回NULL
GB/T32395一2015 4.3.1.2desktop_entry_free 名称 释放DesktopEntry desktop_entry_free" 格式 井ineludeeutil.h voiddesktop_entry_free(destop_entry_tdent); 参数 需被释放的DesktopEntry对象的指针 dent 描述 该函数用于释放指定的DesktopEntry空间 返回值 无 firstsection 4.3.1.3desktop.emtry-n 名称 desktop-entry_firstseetionm 获得DesktopEntry的第一个seetion 名称 格式 井includeclutil.h firstsection(des tdent); char desktop_entry :stop_entry_t 参数 dent Deskto pEanry指针; 2 描述 该函数用于获得DesktopEntry的第一个seetion名称 本标准并设有定义实现以何种顺序决定哪个 section为第一个 sction没有名称,该丽数可以返回空字符串 如果该DesktopEntry只有一个section,并且该s6 应用程序通过调用本丽数获得的字符串,不再使用时应调用free()丽数进行释放 返回值 成功返回指向包含第一个section名称的字符串的指针;失败返回NUILL 4.3.1.4desktop_entrynextsection 名称 获得DesktopEntry的下一个seetion名称 desktop_entry_nextsection 格式 井includeclutil.h》 char desktop_entry_nextsection(destop_entry_tdent); 参数 DesktopEntry指针; dent 描述 该函数用于获得DesktopEntry的下一个section名称 符合本标准的实现应能记录应用程序上 -次调用本函数时的位置,并自动查找下一个seetion 如果应用程序在第一次调用本(该)丽数前,没有调用过desktop_entry_firstseetion(),则表现将与 desktop_entry_firstsection()相同
GB/T32395一2015 实现以何种顺序决定section的顺序,本标准并没有定义 应用程序通过调用本函数获得的字符串,不再使用时应调用free()函数进行释放 返回值 成功返回指向包含下一个seetion名称的字符串的指针;失败返回NUIL 4.3.1.5desktopentry_addseetion 名称 -在DesktopEntry中增加一个section desktop_entry_addsection 格式 #include(clutil.h intdesktop_entry_addsection(destop_entry_tdent,char section; 参数 DesktopEatry指针; dent 需增加的section名称 section 描述 该函数用于在DesktopEntry中增加一个seetion. 如果需要增加的s 在DesktopEary中不存在,则增加;否则,则失败 section 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 CLERR_INVAL 参数无效 CL_ERR_EXIsT seetion已经存在; 其他 其他自定义的原因 delseetionm 43.16desktop_eatry." 名称 delsection 从DesktopEntry中删除一个seetion desktop_entry_ 格式 #includeclutil.h intdesktop -entry_dlsection(des.top_cntry_ tdent,char关section,intrecursive); 参数 DesktopEntr指针; dent 需删除的section名称 section 是否要删除本节所有的item的标志 recursive 描述 该函数用于从DesktopEntry中删除一个section 如果reeursive为1,则删除section以及section中所有item;如果recursive为0并且section中存 在item,则失败 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 C1_ERR_INVAL 参数无效, C1ERR_NoEXIST seetion不存在; C1_ERR_NOEMPTY reeursive为0且seetion中存在item; 其他 其他自定义的原因
GB/T32395一2015 4.3.1.7desktopentry_firstitem 名称 deskt firstitem -获得DesktopEntry某个 secion中第一个item的keyword top_entry_t 格式 井includeclutil.h char desktop_entry_firstitem(destop_entry_tdent,char section); 参数 O dent DesktopEntry指针; 名称 Section Section 描述 该函数用于获得DesktopEntry某个section中第一个item的keyword. seetion可以为NUIL,此时将返回默认section的第一个itemm 实现以何种顺序决定哪个section为默认seetion,以及section中哪个item为第一个 -item,本标准 并没有定义 应用程序通过调用本函数获得的keyword字符串,不再使用时应调用free(O)函数进行释放 返回值 成功返回指向包含第一个item名称的keyword的指针;失败返回NULL 4.3.1.8desktopentry_nextitem 名称 获得DesktopEnry某个 section中下一个item的keyword desktop_-entry_nextitem 格式 井includeclutil.h> char desktop_entry_nextitem(destop_entry_tdent,char关section); 参数 DesktopEntry指针; dent 名称 sectionsection 描述 该函数用于获得DesktopEntry某个section中下一个item的keyword 符合本标准的实现应能 记录应用程序上一次调用本函数时的位置,并自动查找下一个itenm 如果应用程序第一次调用本函数,表现将与desktop_entry_firstitem()相同 section可以为NULL此时将返回默认section的下一个item 实现以何种顺序决定哪个 seetion为默认section,以及seetion中哪个item为第一个item,本标准 并没有定义 应用程序通过调用本丽数获得的keyword字符串,不再使用时应调用ree()函数进行释放 返回值 成功返回指向包含下一个i item名称的keyword的指针;失败返回NULL 4.3.1.9deskto etitem top_entry_get 名称 获得DesktopEntry中指定section中指定item的value desktop getitem -ery-K 格式 井inelude(eutil.h
GB/T32395一2015 char desktop_entry_getitem(destop_entry_tdent,char关keyword,char section); 参数 DesktopEntry指针; dent 需要获得的item的keyword keyword 指定seetion的名称 section 描述 该函数用于获得DesktopEntry中指定section中指定item的value section可以为NULL,此时将返回默认section中指定item的value 实现以何种顺序决定哪个 seetion为默认seetion,本标准并没有定义 value将使用应用程序当前设置的编码,符合本标准的实现应自动转换 应用程序通过调用本函数获得的keyword字符串,不再使用时应调用free()函数进行释放 返回值 成功返回包含 的value的指针;失败返回NULL item 4.3.1.10dektop_ery_elilemu6 名称 _entry_getitem_utf8 desktop 获得DektopEanry中指定 section 中指定item的value,该value 使用UTF-8进行编码 格式 井includeclutil.h * desktop_entry_getitem_utf8(destop_entry_tdent,char keyword.char char sectiOn; 参数 esktopEantry指针; dent keyword 需要获得的item的keyword; 指定section的名称 SectiOn 描述 Entry中指定section中指定item的value,该value应使用UTF-8进行 该函数用于获得Desktop 编码 符合本标准的实现应能自动转换 section可以为NULL,此时将返回默认section中指定item的value 实现以何种顺序决定哪个 section为默认section,本标准并没有定义 应用程序通过调用本函数获得的keyword字符串,不再使用时应调用free()函数进行释放 返回值 成功返回包含itemm的value的指针;失败返回NULL 4.3.1.11desktop_entry_setitem 名称 设置DesktopEntry中指定section中指定item的value desktop_entry_setitem 格式 #include(clutil.h intdesktop_entry_setitem(destop_entry_tdent,char关keyword,char×value,char section); 参数 DesktopEntry指针; dent 需设置的item的keyword keyword
GB/T32395一2015 需设置的value; value 指定seetion的名称 section 描述 该函数用于设置DesktopEntry中指定seetion中指定itenm的value section可以为NULL.,此时将设置默认section中指定item的value 实现以何种顺序决定哪个 seetion为默认seetion,本标准并没有定义 value应使用应用程序当前设置的编码,符合本标准的实现应自动转换 如果参数secetion和keyword指定的seetion或item不存在,实现应自动增加新的sceetion和item value的值是否允许为NULL或空字符串,由实现定义 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 CL_ERR_INVAL 参数无效 其他 其他自定义的原因 4.3.1.12desktop_entry_setitem_ut8 名称 desktop _entry_setitem_ut8 设置DektopEaury中指定ection中指定item的alue 格式 井includeclutil.h intdeskt utf8dest keyword,char value,char GB/T32395一2015 intdesktop_entry_delitem(destop_entry_tdent,char关keyword,char关section); 参数 DesktopEntry指针; dent 需删除的item的keyword keyword 指定section的名称 section 描述 该函数用于删除DesktopEntry中指定section中指定的item. section可以为NULL,此时将设置默认section中指定item的value 实现以何种顺序决定哪个 seetion为默认section,本标准并没有定义 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 CLERR_INVAL 参数无效; CLERR_NOEXIST 指定的seetion或t 不存在 item 其他 其他自定义的原因 4.3.1.14 fromfile dlektop.emtr 名称 deskt 从一个desktop文件中读人DesktopEnty _entry_from_fle top 格式 井includeclutil.h》 关 ilename); intdesktop_entry_from _file(destop_entry_tdent,constchar 参数 DesktopEmtry指针; dent ilenatme 需读人的文件的文件名 描述 该丽数用于从一个desktop文件中读人DesktopEntry dent不能为NULL,否则将返回参数无效错误 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 参数无效, CLERRINVAL 指定的文件不存在; CI_ERR_NOEXIST 对指定的文件没有访问权限(读权限). CLERRPERM cL_ERR_NoTFILE 指定的文件不是一个普通文件或者文件格式不正确; 其他 其他自定义的原因 4.3.1.15desktop_entry_to_file 名称 desktopentryto_fle 将DesktopEntry中内容导人到一个文件中 格式 #include(clutil.h ntdesktop_entry_to_file(constdestop_entry_tdent.constehar*flename); 参数 DesktopEntry指针; dent l0
GB/T32395一2015 要写人的文件名 ilename 描述 该函数用于将一个DesktopEntry中的内容写人某个文件 dent不能为NULL,否则将返回参数无效错误 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 参数无效 CLERRINVAL 指定的文件不存在 CLERRNO)EXIST 对指定的文件没有访问权限(写权限) CIERRPERM 指定的文件不是一个普通文件或者文件格式不正确, CLERRNOTFILE 其他 其他自定义的原因 4.3.2MIIMIE类型相关接口 4.3.2.1 mmimetype_new 名称 创建一个新的文件类型DesktopEntry mimetype_new 格式 井inelude(clutil.h desktop_entry_tmimetype_new(char mimetype); 参数 文件类型名称 mimetype 描述 该函数用于创建一个新的文件类型DesktopEntry 该DesktopEntry的默认section中,keyword 为“Type”的item的value值将被设置为“MimeType”;keyword为“MimeType”的item的value值将 被设置为mimetype mimetype的格式一般应符合MIME规范,实现可自行决定是否允许不符合规范的mimetype 出现 应用程序通过本丽数获得的DektopEary不再使用时需调用dekp-ery.lre()进行释放 返回值 成功返回创建的Desktopntry的指针;失败返回NULL 4.3.2.2mimetype_get 名称 获取一个文件类型的DesktopEntry指针 mimetype_get 格式 井includeclutil.h desktop_entry_上mimetype_Re(char tmimetype); 参数 文件类型名称 mimetype 描述 该函数用于获取某个文件类型的DesktopEntry指针 如果nmimetype不存在,该函数应失败 1
GB/T32395一2015 应用程序通过本函数获得的DesktopEntry,不再使用时需调用desktop_entry_free()进行释放 返回值 成功返回一个DesktopEntry指针;失败返回NUL 4.3.2.3mimetype_set 名称 向系统中增加一个文件类型 mimetype_set 格式 井include(clutil.h intmimetype_set(desktop_entry_tdent,intoverwrite); 参数 文件类型DesktopEntry指针; dent 是否强制覆盖的标志 overwrite 描述 该函数用于向系统中增加一个文件类型 如果dent描述的文件类型不存在,则创建一个新的文件类型;如果该文件类型存在,并且 e为1,则用新的描述,改写旧的描述,否则失败 overwrite 调用该函数后 mimetype是否立即生效,由实现定义 den所捕述的文件类型DesktopEmry中,包含下列keyword的iem应在默认 中出现,并 section" 且包含有效val ue 心 ype类型,应为“MimeType”; MimeTy ype文件类型; Comment注释 包含下列keyword的item可以出现 Comment[locale力某种locale下的注释,其中(Iocale》可以是任意一种locale; Ieon图标文件名; Pattern、匹配该文件类型的文件名描述,可以使用通配符,多个文件名间以“;”分隔,如“file”、“ile file”或”“关.txt;file.关 实现不应强制要求dent中包含上述iem以外的其他em 如果实现所采用的机制必须使用其他 的item,其内容应由实现自行填充 dent中还可以包含哪些section或item是实现定义的 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 c1ERR_INVAL 参数无效 CL_ERR_EXIsT 指定的文件类型存在,并且overwrite为0; 其他 其他自定义的原因 4.3.2.4mimetype.delete 名称 从系统中删除一个文件类型 mimetype_delete 格式 井include(clutil.h intmimetype_delete(char mimetype); 12
GB/T32395一2015 参数 mimetype需删除的mimetype 描述 该函数用于从系统中删除一个文件类型 删除mimetype后是否立即生效,由实现定义 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 参数无效; CI_ERR_INVAL. 指定的文件类型不存在; CLERRNOEXIST 其他 其他自定义的原因 4.3.2.5mimetype_add_magic 名称 增加一个文件类型的magic描述 mimetype_add_magic 格式 井includeclutil.h iintmimetype_set_magic(char*mimetype,struetmime_magie magic); 参数 e文件类型名称 tmimetype magie要增加的magie描述指针 描述 该函数用于增加一个文件类型的magic描述 结构mime_magic定义如下 structmime_magie char*offset: char type; char data 关于magie中office .ype和data的定义,参见1so)/IEC2360- -1LSB3.1中对file的定义 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 cL_ERR_INVAL 参数无效 CL_ERR_NOEXIST 指定的文件类型不存在; 其他 其他自定义的原因 4.3.3应用程序描述文件相关接口 4.3.3.1 progdesc_new 名称 progdescnew 创建一个新的应用程序描述DektopEntry 格式 井includeclutil.h> desktop progdesc_new(); _entry- 参数 无 13
GB/T32395一2015 描述 该函数用于创建一个新的程序描述DesktopEntry 该DesktopEntry的默认section中,keyword 为“Type”的item的value值将被设置为“Application” 应用程序通过本函数获得的DesktopEntry,不再使用时需调用desktop_entry_free()进行释放 返回值 成功返回创建的DesktopEntry的指针;失败返回NULL 4.3.3.2progdese_get 名称 -获取一个应用程序描述的DesktopEntry指针 progdesc_get 格式 #include(clutil.h)》 char filename); desktop_entry_tprogdesc_get 参数 ilename 应用程序描述所在的文件 描述 该函数用于获取某个应用程序描述的DesktopEntry指针 filename可以是一个绝对路径,也可以是相对路径 如果是相对路径,实现将决定从哪个目录中查 找该文件 name中 如果实现以某种固定的扩展名(如.desktop)存储应用程序描述文件,那么该扩展名在filen 可以省略 如果filename不存在,该函数应失败 应用程序通过本函数获得的DesktopEntry,不再使用时需调用deskt top_entry_free()进行释放 返回值 成功返回一个DesktopEntry指针;失败返回NULL 4.3.3.3progdescset 名称 向系统中增加一个应用程序描述 progdesc_set 格式 井includeclutil.h intprogdesc_set(char filename,desktop_ -entry_t dent,intoverwrite); 参数 flename 该应用程序描述保留的文件名; 应用程序描述DesktopEntry指针; denmt 是否强制覆盖的标志 overwrite 描述 该函数用于向系统中增加一个应用程序描述 如果dent描述的文件不存在,则创建一个新的文件;如果该文件存在,并且overwrite为1,则用新 的描述,改写旧的描述,否则失败 flename可以是一个绝对路径,也可以是相对路径 如果是相对路径,实现将决定从哪个目录中查 找该文件 父 如果实现以某种固定的扩展名(如.desktop)存储应用程序描述文件,那么该扩展名在flenarme" 14
GB/T32395一2015 可以省略 调用该函数后应用程序描述是否立即生效,由实现定义 dent所描述的应用程序描述DesktopEntry中,包含下列keyword的item应在默认seetion中出 现,并且包含有效value: Type类型,应为“Application”; Exec需执行的应用程序及其参数; Name名称 包含下列keyword的item可以出现 Name[(locale)]某种locale下的名称,其中(Ilocale)可以是任意一种locale: MimeType可以处理的文件类型,可以为多个,之间以“;”分隔 Comment注释; Comment[(locale)]某种locale下的注释,其中(locale)可以是任意一种本地环境; 图标文件名; lcon StartupNotify启动时是否通知窗口管理器; Termina al应用程序是否要在终端下执行 为是;false为否:; true Path执行程序的路径; Cam ategories起始菜单分组信息 可以是起始菜单中的某个组 实现不应强制要求dent中包含上述item以外的其他it 如果实现所采用的机制必须使用其他 tem 的item,其内容应由实现自行填充 dent中还可以包含哪些section或item是实现定义的 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 CL_ERR_INVAL. 参数无效; CLERREXIST overwrite为0; 指定的文件存在,并且c 其他 其他自定义的原因 4.3.3.4progdescdelete 名称 从系统中删除一个应用程序描述文件 progdescdelete 格式 井includeclutil.h intprogdesc_delete(char filename); 参数 flename 需要删除的文件 描述 该函数用于从系统中删除一个应用程序描述文件 删除后是否立即生效,由实现定义 如果实现以某种固定的扩展名(如.desktop)存储应用程序描述文件,那么该扩展名在flename中 可以省略 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 C1ERR_INVAL 参数无效 指定的文件不存在; C1_ERR_NOEXIST 其他 其他自定义的原因 15
GB/T32395一2015 4.3.4启动菜单相关接口 4.3.4.1applnk_create 名称 创建一个快捷方式或组 applnk_create 格式 井includeclutil.h intapplnk_create(desktop_entry_tdent,char*category,char*location,intalluser); 参数 dent 包含快捷方式或组描述的DesktopEntry指针; 对于快捷方式组,需要的组信息 categOry 该快捷方式或组的创建位置; location alluser 是否为所有用户创建的标志 描述 该丽数用于向系统中增加一个快捷方式或组 dent用于描述该快捷方式或组,描述的方式有两种 a 方式一;dent中包含下列keyword的item应存在,并且包含有效value: Nam lame名称; Type类型; 如果类型为“Application”,那么包含下列keyword的item应存在,并且包含有效value: Exec执行的应用程序及参数; 如果类型为“Link”,那么包含下列keyword的item应存在,并且包含有效value: URL连接的url或文件 包含下列keyword的item可以存在 Nanme[locale]某种locale下的名称,其中(locale)可以是任意一种locale: Comment注释, Comment[(locale)]某种locale下的注释,其中(locale)可以是任意一种locale; lcon图标文件名 Path执行程序的路径; Filenmame指定文件存储的名称[取最后一项,即baseame(]. Type为“Diretory"时,将创建组;否则,创建快捷方式 如果没有指定Filename,在dektop下 创建的组(即目录)或者文件名称等于dent中关键字Name所描述的值(对于文件,文件名后 加.desktop后缀 b 方式二;关键字Type的值为空或者没有设置;并且包含下列keyword的item存在,并包含有 效value FileName 文件名 此时,系统将自动读取FileName指定的文件名(绝对路径或相对路径,该文件存放的默认位置是 系统自定义的),用于创建快捷方式或组 该文件可以是用户使用progdese_set等函数创建的,也可以是通过编辑器或其他应用软件创建的 Filename将自动增加到DesktopEntry文件中,如果原来的DesktopEntry文件中已经存在 Filename项,将被覆盖 DesktopEntry文件中应该包含的项以及创建规则等与方式一相同 l6
GB/T32395一2015 对于本函数创建的组或快捷方式,其他函数(譬如applnk_delete)使用/DesktopEntry 的Filename项)或者(location>/(DesktopEntry的Name项>对于Filename不存在的情形)或者 《location)/category>(只针对起始菜单中的组)可以检索到 参数category只对快捷方式组有效,用于确定该组的category名,用于progdes添加使用; 参 数location表示快捷方式或组需要安装的位置(目录),可以接受的字符串包括: application起始菜单的应用程序下; application/..[/.]起始菜单的应用程序下的某个组下(如果该组不存在的话,函数将失败): launcher面板启动器 desktop桌面; desktop/.[/.]桌面下的路径(如果路径中的某个目录不存在的话,函数将失败) autostart自动启动项 如果被指定的位置是一个文件或快捷方式的话,函数将失败 注;组只能被创建在起始菜单或桌面中;起始菜单中的快捷方式建议直接使用progdesc_set)创建并指定所在的 组,使用本函数创建时,也建议使用方式二,或者保证相同的描述没有被progdesc_set创建过;否则,可能造成 系统不一致 alluser用于标志是否为所有用户创建快捷方式或组 为1时表示为所有用户创建(只有特权用户 才可以);为0时,系统将只为当前用户创建 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 CL_ERR_INVAL 参数无效 CL_ERR_NoTFILE需要写人的文件(譬如使用Filename指定的文件)不是一个文件; CI_ERR_NOEXIST路径中间的目录不存在;或者使用方式二指定的文件名不存在 其他 其他自定义的原因 4.3.4.2applnk._deete 名称 删除一个快捷方式或组 applnk_delete" 格式 井ineludeclutil.h intapplnk_delete(char关location,intalluser,intrecursive); 参数 该快捷方式或组的位置; location 是否为所有用户删除的标志; alluser 是否删除下属子组和快捷方式的标志 recursive 描述 该函数用于从系统中删除一个快捷方式或组 参数location表示快捷方式组的位置(目录),可以接受的字符串包括: application/.[/]起始菜单的应用程序下的某个组 desktop/.[/.]桌面下的路径; laucher/.面板启动器下的快捷方式; autostart/自动启动项下的项 aluser用于标志是否为所有用户删除快捷方式组 为1时删除所有用户的快捷方式组(只有特权 用户才可以);为0时,系统将删除当前用户的快捷方式组 17
GB/T32395一2015 对于组,如果recursive为1.则删除该快捷方式组以及该组中的子组和快捷方式;如果recursive为 0并且该快捷方式组下不空,则失败 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 C1_ERR_INVAL 参数无效 CLERR_NOEXIST 指定的快捷方式组不存在; CL_ERR_NOEMPTY recursive为0并且组下不空; 其他 其他自定义的原因 4.3.4.3applnk_fast_ereate 名称 applnk_fast_create 快速创建一个快捷方式或组 格式 井includeclutil.h) astcreate(constchar name,constchar exec,const imtapplnk name_loc,constchar location,intalluser); char icon,constchar category,constchar 参数 快捷方式或组的名称(locale为C时显示的名称); name 快捷方式或组的本地名称(当前locale下显示的名称) nameloc 被执行命令的路径; exec 图标路径; icon 对于快捷方式组,需要的组信息; category 该快捷方式或组的创建位置; location 是否为所有用户创建的标志 alluser 描述 该函数用于向系统中快速增加一个快捷方式或组 mm用于插述快捷方式或组的名称,该名称将在没有指定当前 locale的名称的情况下显示 不能为NULL,否则将返回参数无效错误; name nameloe用于描述快捷方式或组的本地名称,即在当前locale下显示的名称 nameloc应使用 当前locale编码 nameloc可以为NULL; exec用于描述快捷方式的执行命令路径名 如果增加的是一个快捷方式的话,exec不能为 NULL,否则将返回参数无效错误;如果增加的是一个组的话,exee将被忽略 icon用于指定快捷方式或组的显示图标路径 该路径可以是相对系统默认路径的相对路径,也可 以是绝对路径 icon可以为NULL 参数category只对快捷方式组有效,用于确定该组的category名,用于progdesc添加使用; ocation表示快捷方式或组需要安装的位置(目录),可以接受的字符串包括 applieation起始菜单的应用程序下; applieation/.[/.]起始菜单的应用程序下的某个组下(如果该组不存在的话,函数将失败); auncher面板启动器; desktop桌面; desktop/.[/.]桌面下的路径(如果路径中的某个目录不存在的话,函数将失败): autostart自动启动项 如果被指定的位置是一个文件或快捷方式的话,函数将失败 18
GB/T32395一2015 组只能被创建在起始菜单或桌面中 alluser用于标志是否为所有用户创建快捷方式或组 为1时表示为所有用户创建(只有特权用户 才可以);为0时,系统将只为当前用户创建 如果用户指定的快捷方式或组的名称已经存在,实现可以采用覆盖、忽略或者重复创建等方式处 理,本标准对于具体实现并不规定 在该函数执行过程中,可能需要创建新的desktop文件,文件名将由实现决定,一般不应覆盖用户 已有的其他文件 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 C1_ERR_INVAL 参数无效 C1_ERR_NoEXIST 路径中间的目录不存在; 其他 其他自定义的原因 4.3.5图标相关接口 4.3.5.1 iconadd 名称 向系统默认的图标路径中增加一个图标文件 icon_add 格式 井includeclutil.h constchar icon,constchar关dest iintion_add 参数 图标文件的源路径; icon 增加到系统默认路径下的相对路径 dest 描述 该函数用于向系统中增加一个图标 icon用于指定图标文件的原始路径 应用应保证该文件为系统识别的图标文件格式 但本标准对 于实现是否要对文件格式的正确性进行检查并无要求 dest用于指定增加到系统默认路径下的相对路径 dest可以为NULL.,此时图标文件将被复制到 系统默认路径下 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 参数无效 CLERR_INVAL CLERRNOEXIST icon指定的文件不存在; 其他 其他自定义的原因 4.3.5.2icon_delete 名称 从系统默认的图标路径中删除一个图标文件 icondelete 格式 井includeclutil.h》 inticon_delete(constchar icon); 19
GB/T32395一2015 参数 要删除的图标文件在系统默认路径下的相对路径 con 描述 该函数用于从系统中删除一个图标 con用于指定要删除的图标文件在系统默认路径下的相对路径 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 参数无效 CL_ERR_INVAL. CLERRNOEXIST icon指定的文件不存在; 其他 其他自定义的原因 4.3.6RecentFile相关接口 4.3.6.1recen_fileadd 名称 recent_fle_add -将一个文件增加到最近打开文件列表中 格式 井includeclutil.h ntrecent_file_add(constehar*flename). 参数 filename 需要增加的文件名 描述 该函数用于将一个文件增加到最近打开文件列表中 filename用于指定需要增加的文件 filename不能为NULL,否则将返回参数无效错误;本标准并 不对系统是否要检查文件的存在性进行规定 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 CL_ERR_INVAL 参数无效 其他 其他自定义的原因 4.3.6.2recentfiledelete 名称 recent_file_delete 从最近打开文件列表中删除一个文件 格式 井includeclutil.h intrecent_file_delete(constchar filename); 参数 ilename 需要删除的文件名 描述 该丽数用于从最近打开文件列表中删除一个文件 flename用于指定需要删除的文件 filename不能为NULL,否则将返回参数无效错误 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 C1ERR_INVAL 参数无效 其他 其他自定义的原因 20
GB/T32395一2015 4.3.7打开特定的应用程序相关接口 4.3.7.1eutilopen 名称 使用默认打开程序打开一个文件 clutil_open 格式 井includeclutil.h intclutil_open(constchar filename); 参数 需要打开的文件的路径 ilename 描述 该函数用于使用默认打开程序打开一个文件 filename是需要被打开的文件的路径,filename不能为NULL,否则将返回参数无效错误 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 CIERR_INVAL. 参数无效 打开方式不存在; CINO_EXIsST 其他 其他自定义的原因 4.3.7.2eutil_email名称 名称 使用默认的邮件处理程序发送邮件 clutil_email 格式 井ineludeelutil.h》 intclutil_emailconstchar mailaddr,constchar关cc,constchar关bcc,constchar黄关ilename); 参数 收件人地址 mailaddr 抄送者地址 cC 暗送者地址 bce 需要附加的文件列表 ilename 描述 该函数用于使用使用默认的邮件处理程序发送邮件 mailaddr用于指定收件人地址 mailaddr应符合RFC822的规定,多个地址中可以使用逗号分隔 ma ailaddr可以为NULL cc用于指定抄送者地址 cc应符合RFC822的规定,多个地址中可以使用逗号分隔 cc可以为 NULL bee用于指定暗送者地址 bee应符合RFC822的规定,多个地址中可以使用逗号分隔 bee可以 为NULL flename用于指定需要附件的文件列表 filename应是一个以NULL结束的字符串指针数组 flename可以为NULL 返回值 成功返回0;失败返回非0,并根据失败原因的不同,返回 21
GB/T32395一2015 CL_ERR_INVAL 参数无效 其他 其他自定义的原因 农历函数库Iiblunar1 5.1libunar-1接口 农历函数库提供了一组和农历相关的应用程序接口,实现了公农历的相互转换功能 本丽数库依赖于glib,关于NULL,TRUE,FALSE,GEror,GDateYear,GDateMonth,GDate- Day的定义,详见Iso/IEC23360-1I.SB3.1 表3定义了Ihblunar-1的库名及共享对象名 函数库的存放位置是实现定义的,但应在动态连接 器的搜索目录中 表3libluar-1定义 库名 liblunar1 liblunar-1.so,.0 共享对象名 符合本标准的实现应提供表4中定义的接口 表4linar1接口 lunarinit lunar_date_new lunar_date_set_solar_date lunar_date_set_lunar_date lunar_date_get_jieri lunar_date_strftime lunar_date_free iblunar-1数据定义 5.2 lunar/Iunar.h typedefguint8GDateHour;/×小时 /*农历日期结构 typedefstruct unarDateLunarDate; ypedefstruct_L.unarCalendarL.narCalendar;/*月历部件结构 桌 #deineLUNAR_DATEERRR(lunardateeror_quark())/*LunarDate的错误域,用于GEr rOr typedefenum LUNARDATEERRORINTERNAl,/*发生了库内部错误 关 LUNARDATEERROR_DAY,/×当前计算的日超出范围 LUNARDATEERRORYEAR,/×当前计算的年超出范 LUNAR_DATEERROR_LEAP unar_date_set_lunar_date()丽数中的isleap参数设置错 误 LunarDateEror; 22
GB/T32395一2015 5.3liblunar-1接口定义 5.3.1初始化 5.3.1.1lunar_init 名称 初始化Iblunar库 lunar_init 格式 井includelunar/lunar.h voidlunar_initint*argc,char关*argv); 参数 命令行参数的个数, argC 命令行参数数组 argV 描述 该函数用来初始化Iiblunar库,编写应用程序时,该函数应首先被调用 返回值 无 5.3.2日期转换接口 5.3.2.1lunar_date_new 名称 创建新的LunarDate unar_date_new 格式 #inelude(Iunar/lunar.h lunarDate关lunar_date_newvoid 参数 无 描述 创建一个新的LunarDate 该丽数返回的为LunarDate类型指针 使用完毕,应使用lunar_date_free()函数来释放该结构体的内容 返回值 成功时返回一个有效的LunarDate指针,失败时返回NULL 5.3.2.2 lunardatesetsolardate 名称 .date 设置公历日期 lunar_date_set_solar_ 格式 井includel lunar/lunar.h GDateMonthmonth voidlunar_date_set_solar_dateLunarDate*date,GDateYearyear GDateDyday.GDateHourhour.GEror**eror); 参数 由lunar_date_new()创建的LunarDate指针; date 23
GB/T32395一2015 设置公历年份 year 设置公历月份; month day 设置公历日; hour 设置小时; 返回错误信息,设置为NULL则忽略错误 error 描述 为date设置公历年、月、日和小时 示例 GError*error=VULL; lunardateset_solardate(date,year,month,day,hour,&.error); iferor 及print("Eror:%sn",error一)message), returnFA.SE; 返回值 无 5.3.2.3 lunardatesetlunardate 名称 -设置农历日期 lunar_date_set_lunar_date 格式 井include《lunar/lunar.h》 GDateMonthmonth, voidlunar_date_set_lunar_dateLunarDate关date,GDateYearyear GError关关error): GDateDayday." GDateHourhour,gbooleanisleap 参数 由lunar_date_new()创建的LunarDate指针; date 设置农历年份; year month 设置农历月份; 设置农历日; day 设置小时 hour 设置month指定的月是不是闰月,如果是间月,此变量设为TRUE,否则请设置为 isleap FALSE; 返回错误信息,设置为NULL则忽略错误 error 描述 为date设置农历年、月、日和小时 如果是闺月,应该把isleap这个参数设为TRUE 如果isleap参数设置错误对闰月设置isleap参数为FAL.SE;或对非闫月设置isleap参数为 TRUE),那么error 将会返回错误信息 所以每次调用此函数之后,都应该检查一下eror参数,对错误的设置应该及 时给出说明或提示 24
GB/T32395一2015 示例 GEror*eror NULL, unardate_setlunar_datedate,year,month,day,hour,isleap&.eror); ireror) 区_printf("Eror:%sln",eror-)message); returnALSE; 返回值 无 5.3.2.4lumar_date_getjier 名称 得到节日或节气信息 lunar_date_getjieri 格式 井include(lunar/lunar.h gchar关lunar_date_get_jieriIunarDate关date); 参数 由lunar_date_new()创建的LunarDate指针 date 描述 根据当前设置的日期,返回一个字符串,这个字符串是当前日期所对应的节日或节气 如果当前日期没有节日或节气,返回空串 返回值 一个字符串,包含节日、节气等,多个项之前使用空格分隔 如果没有节日或节气,则返回空串 5.3.2.5lunar_date_strftime 名称 格式化输出日期字符串 lunar_date_strftime 格式 井include《lunar/lunar.h gchar关lunar_date_strftime(LunarDate关date,constchar关format); 参数 date 由lunar_date_new()创建的LunarDate指针; format 指定输出格式 可使用的格式及示例输出如下 大写公历 %YEAR)年%MONTH)月%(DAY)日%(HOUR)时, 例如:二OO八年一月二十一日十一时; %(vear)年%month)月%(dav)日%(hour)时 小写公历 例如;2008年1月21日11时, a %(NIAN)年%(YUE)月%(RI)日%(SH)时, 大写农历 例如:丁亥年腊月十四日亥时 小写农历 %nian)年%(yue)月%(ri)日%(shi)时 例如;2007年12月14日8时; 25
GB/T32395一2015 大写干支 %(Y60)年%(M60)月%(D60)日. 例如:丁亥年凳丑月庚申日 %(Y8)年%(M8)月%(D8)日%(S8)时 大写八字 例如:丁亥年凳丑月庚申日亥时; %(shengxiao). 生肖 例如:蛇 节日节气 %(ieri). 例如:立春 描述 根据指定的输出格式%(???)来输出日期字符串 以上的输出格式%(???)可以任意组合使用,其 中的非格式字符将会原样输出 示例 gchar*string=unar_date_strfime(date,"今天是%YEAR-%MONTH)-%DAY),农历% NIAN)年,生肖属%shengxiao)"); string的内容将如"今天是二0三七-二-二十七,农历丁已年,生肖属蛇” 返回值 返回一个已分配空间的以0结尾的字符串 使用完成后需要释放此字符串所占用的空间 5.3.2.6 free lunar_date_t 名称 释放LunarDate -date- Iunar ree 格式 井includeIunar/Iunar.h voidlunardatefreeLunarDate关date); 参数 date 由lunar_datenew()创建的LunarDate指针 描述 释放之前由lunardatenew()创建的L.unarDate指针 返回值 无 26

信息技术中文Linux操作系统应用编程接口(API)扩充要求GB/T32395-2015

随着计算机技术的不断发展,中文Linux操作系统在各行业得到了广泛应用。然而,由于历史原因等诸多因素的影响,中文Linux操作系统的API并非完全符合国际标准,这给软件开发带来了一定的困扰。因此,中国国家标准化管理委员会制定了GB/T32395-2015标准,对中文Linux操作系统的API进行了扩充要求。

标准内容

该标准主要关注以下几个方面:

  • 字符编码:标准规定中文Linux操作系统必须支持UTF-8编码,以保证中文字符的正确使用。
  • 函数命名:标准要求中文Linux操作系统必须使用英文单词作为API函数名称,避免使用中文拼音或汉字。
  • 错误处理:标准规定中文Linux操作系统必须提供统一的错误处理方式,并给出明确的错误代码。
  • 接口扩展:标准鼓励对现有API进行扩展,以支持更多的功能。

实践应用

通过遵循GB/T32395-2015标准,中文Linux操作系统能够更好地适应国际化标准,提高兼容性和可移植性。这对于软件开发者来说是非常重要的,因为它能够提供更加友好的接口,减少开发过程中的困难。

此外,中文Linux操作系统也可以通过符合该标准的API接口扩展,来满足不同行业和用户的需求。

结论

GB/T32395-2015标准的制定对于中文Linux操作系统的发展非常重要。通过遵循这个标准,中文Linux操作系统能够更好地适应国际化标准,提高兼容性和可移植性,并为软件开发者提供更加友好的接口。

和信息技术中文Linux操作系统应用编程接口(API)扩充要求类似的标准

信息技术中文Linux操作系统运行环境扩充要求
上一篇 本文分享国家标准信息技术中文Linux操作系统运行环境扩充要求的全文阅读和高清PDF的下载,信息技术中文Linux操作系统运行环境扩充要求的编号:GB/T32394-2015。信息技术中文Linux操作系统运行环境扩充要求共有30页,发布于2016-07-01
中文电子邮件地址邮件头格式技术要求
本文分享国家标准中文电子邮件地址邮件头格式技术要求的全文阅读和高清PDF的下载,中文电子邮件地址邮件头格式技术要求的编号:GB/T32397-2015。中文电子邮件地址邮件头格式技术要求共有8页,发布于2016-07-01 下一篇
相关推荐