Mysql入门系列:MYSQL客户机程序4—在运行时获取连接参数
2006-12-31 10:51:28 来源:WEB开发网■ 选项的短(单个字符)名称。在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 示例有相同的内容):
输出结果说明从命令行得到主机名(忽略选项文件中的这个值),从选项文件中得到用户名和口令。getopt_long() 正确分析了选项是在短选项形式( -h host_name )中指定还是在长选项形式( --user = paul ,--password = secret )中指定。
现在让我们去掉纯粹说明选项处理例程是如何工作的这一部分,把剩余部分作为根据选项文件或命令行提供的任何选项而连接到服务器的客户机的基础。源文件client4.c 的代码如下:
更多精彩
赞助商链接