技术解析

Linux C 实现命令,加参数,参数后加值,解析命令行!
0
2021-06-29 04:11:40
idczone

想用 linux C 实现类似这样的命令: mysql -u "root" -p "123456"

请大家给点思路,谢谢!


getopt
argp
suboptions
这几个库都可以

main(argc *c ,argv[])

主要是想实现-u 后面加值,可以实现吗?

getopt +正则捂脸!

给你一个自己写的 C 程序里的 getopt 例子: https://github.com/tsl0922/ttyd/blob/master/src/server.c#L236

```

int main (int argc, char *argv []) {
int i;
for (i = 1; i < argc; i++) {
printf ("%s%s", argv [i], (i < argc -1) ? " " : "");
}
printf ("\n");
return 0;
}
```

getopt 一般就够了,一般 Linux Unix 都是这种。
例子有 https://gitee.com/oschina/svnsrv/blob/master/src/main.ccstyle 的用 gflags
还有其他的:
https://github.com/fffaraz/awesome-cpp/>人肉手写也行
https://gitee.com/oscstudio/git-analyze/blob/master/tools/analyze/driver.cc
手写也要不了很多代码。

http://www.gnu.org/software/libc/manual/html_node/Parsing-Program-Arguments.html, 搜出来的第一条就是这个

谢谢这么详细的回答,非常感谢,我慢慢消化。

非常感谢!

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服