This Domain(Admin5.com) is for Sale:

My SQL数据库实用技术(33)

时间:2007-12-23  来源:不详  作者:迈克DB

4) 调用getopt_long() 处理参数向量,然后打印结果参数值和参数向量中的剩余部分。
show_param 答应使用各种指定的连接参数的方法进行试验(无论是在选项文件中还是在命令行中),并通过显示使用什么值进行连接来查看结果。当实际上我们把参数处理代码与连接函数do_connect() 连到一起时,show_param 对于预知下一个客户机程序将要发生什么是很有用的。
以下是show_param.c 的代码:
copyright dedecms

copyright dedecms


织梦内容管理系统

copyright dedecms


本文来自织梦

内容来自dedecms


本文来自织梦

copyright dedecms


为了处理参数向量, show _ argv() 使用getopt_long() ,它在循环中调用:
织梦好,好织梦

织梦内容管理系统


getopt_long() 的前两个参数是程序的计数参数和向量参数,第三个参数列出了要识别的选项字符。这些是程序选项的短名称形式。选项字符后可以有冒号、双冒号或者无冒号,表示选项值必须跟在选项后面、可以跟在选项后面或者不能跟在选项后面。第四个参数long_options 是一个指向可选结构数组的指针,每个可选结构为程序需要支持的选项指定信息。它的目标与第三个参数的可选字符串相类似。每个long_options[] 结构有四个元素,其描述如下:
■ 选项的长名称。
■ 选项值。这个值可以是required _ argument、optional _ argument 或者no _ argument,表明选项值是必须跟在选项后面、可以跟在选项后面,还是不能跟在选项后面(它们与第三个参数选项字符串中的冒号、双冒号或无冒号的作用相同)。
■ 标记参数。可用它存储变量指针。假如找到这个选项, getopt_long() 则把第四个参数指定的值存储到变量中去。假如标记是NULL,getopt_long() 就把optarg 变量指向下一个选项的任何值,并返回选项的短名称。long_options[] 数组为所有的选项指定了NULL。那就是说,假如碰到getopt _ long( ),就返回每个参数,以便我们可以在switch语句中来处理它。
■ 选项的短(单个字符)名称。在long_options[] 数组中指定的短名称必须与作为第三个参数传递给getopt_long() 的选项字符串所使用的字母相匹配,否则程序将不能正确处理命令行参数。long_options[] 数组必须由一个所有元素都设为0 的结构所终止。getopt_long() 的第五个参数是一个指向int 变量的指针。getopt_long() 把与最后碰到的选项相符合的long_options[] 结构索引存储到变量中( show_param 不用这个值做任何事情)。 本文来自织梦
请注重,口令选项(指定为--password 或者-p )可以获得一个选项值,那就是说,假如使用长选项形式可指定为--password 或者--password = your_pass,假如使用短选项形式则指定为-p 或者- p your _ pass。可选字符串中“ p” 后面的双冒号和long_options[] 数组中的optional _ argument 表示了口令值的可选特性。非凡是, MySQL 客户机答应在命令行省略口令值,然后提示输入。这样避免了在命令行给出口令,它防止其他人通过偷窃看到口令。在写下一个客户机程序(客户机程序4)时,将把口令检查性能添加进去。下面是show_param 的调用示例和结果输出(假设~ /.my.cnf 一直与show _ argv 示例有相同的内容):

看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息