执行两个字节

execl off by two bytes

我有这个代码:

    execl("/bin/ip", "address", "add", 
        "dev", ob->tun_name,  
        "local", ob->local_ip,
        "peer", ob->remote_ip,
        NULL
    );

但我收到错误:

Object "dress" is unknown, try "ip help".

如果我使用这个:

    execl("/bin/ip", "  address", "add", 
        "dev", ob->tun_name,  
        "local", ob->local_ip,
        "peer", ob->remote_ip,
        NULL
    );

有效。

我已经试过了execlp("ip", ...,但它有同样的问题。

我哪里做错了 - 为什么我需要去掉 "address" 前面的两个字符?

这行得通,我需要重新添加可执行文件的名称。

    execl("/bin/ip", "/bin/ip", "address", "add", 
        "dev", ob->tun_name,  
        "local", ob->local_ip,
        "peer", ob->remote_ip,
        NULL
    );