Feb18

【原创】execvp中参数问题小记

Author: leeon  Click: 6888   Date: 2013.02.18 @ 20:59:03 pm Category: Linux C/C++编程
今日在封装一个类时遇到execvp的传参个数问题,execvp允许传入两个参数,第一个参数是执行的文件路径(可以是命令名也可以是文件绝对路径名),第二个参数包括执行的命令以及命令参数构造的一个二维数组,我用stl的string来构造第二个参数的时候申明了一个char*的一维字符指针,通过string的const_cast方式构造一个参数列表,但是发现执行的execvp老是失败,strace的时候发现构造的数组在传入的时候会多了一项,在学习c/c++的时候标准说过数组的维数+1都是合法的,故在最后一项后的一项也一并传入了execvp。 例如我申明了一个char *arr[5],实际上arr[5] 这一项也会传入,故我们需要在赋值的时候对这一项申明arr[5]='\0' ,从而避免这一项污染执行的命令。

TAG:   execvp

    评论
    • 提交

    分类

    标签

    归档

    最新评论

    Abyss在00:04:28评论了
    Linux中ramdisk,tmpfs,ramfs的介绍与性能测试
    shallwe99在10:21:17评论了
    【原创】如何在微信小程序开发中正确的使用vant ui组件
    默一在09:04:53评论了
    Berkeley DB 由浅入深【转自架构师杨建】
    Memory在14:09:22评论了
    【原创】最佳PHP框架选择(phalcon,yaf,laravel,thinkphp,yii)
    leo在17:57:04评论了
    shell中使用while循环ssh的注意事项

    我看过的书

    链接

    其他

    访问本站种子 本站平均热度:8823 c° 本站链接数:1 个 本站标签数:464 个 本站被评论次数:94 次