Closed Germlin closed 8 years ago
实际测试并没有问题
$ sudo ./sysuh3c -p "-abcde" -u "abc"
pwd: -abcde
我在程序里把password
输出来,结果是正确的。
@Reuynil 你测试过原本使用 getopt_long
的版本读不到正确的参数么?我测试过是可以用的
我发现其实是我没有加引号,直接输入$ sudo ./sysuh3c -p -abcde -u abc
。加了引号之后原来的版本是可以的。我撤回Pull request吧。
原来的代码中使用
getopt_long
来解析参数,遇到密码中包含字符-
的话,-
后面的字符会被当成新的选项。我写了跟getopt_long
功能类似的一个函数来解析参数,可以保证密码中包含-
也能被正确识别,但有一个缺点,不能解析--user
这样的长选项。