C编辑char * argv []的元素

大家都知道这个功能

int main(int argc,char* argv[])
{

}

我想在Linux中为我的程序编写命令行界面,通常由getopt_long()完成

我的程序将从命令行执行,如下所示:

pop3 get --limit 25 --recent 

因此,argv []将包含pop3作为其程序名称,其余的被视为选项.
我想从我的字符串中删除pop3并将其后的第一个标记设置为数组的第一个元素.除了循环之外,有没有办法做到这一点?

最佳答案
只需递增argv指针,然后递减argc.
例:

int main(int argc,char *argv[])
{
    argc--;
    argv++;

    return 0;
}

这是有效的,因为当你增加argv时,你仍然拥有内存中的先前数据,只是argv的基地址已经增加.你减少了argc,因为你现在少了一个论点.

相关文章

Linux中的ARP防火墙主要用于防御ARP欺骗攻击,其效果取决于多...
insmod和modprobe加-f参数导致Invalid module format错误 这...
将ArchLinux安装到U盘 几个月前入门Arch的时候上网搜了不少安...
1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...