大家都知道这个功能:
int main(int argc,char* argv[]) { }
我想在Linux中为我的程序编写命令行界面,通常由getopt_long()完成
我的程序将从命令行执行,如下所示:
pop3 get --limit 25 --recent
因此,argv []将包含pop3作为其程序名称,其余的被视为选项.我想从我的字符串中删除pop3并将其后的第一个标记设置为数组的第一个元素.除了循环之外,有没有办法做到这一点?
int main(int argc,char *argv[]) { argc--; argv++; return 0; }
这是有效的,因为当你增加argv时,你仍然拥有内存中的先前数据,只是argv的基地址已经增加.你减少了argc,因为你现在少了一个论点.