2381|0

3241

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

linux exec系统调用的问题 [复制链接]

我在看exec系统调用,看execve函数的用法。
书上有个例子,两个程序,要分开编译。
第一个代码如下:
#include
#include
extern char **environ;
int main(int argc,char* argv[])
{
    int i;
    puts("输出执行参数:");
    for(i=0;i<=argc;i++)
        printf("参数%d是:%s\n",i,argv);
    puts("输出环境变量:");
    for(i=0;environ!=NULL;i++)
        printf("%s\n",environ);
    return 0;
}
第二个代码如下:
#include
#include
extern char **environ;
int main(int argc,char* argv[])
{
    puts("此信息可能无法输出");
    execve("beexec",argv,environ);
    puts("正常情况此信息无法输出");
    return 0;
}
分别编译以后,我在第二个文件的目录下输入命令:
./doexec test1
显示如下:

跟书上的不一样。
书上的意思是说,执行第二个程序。puts()函数向缓冲区输入了
一条信息后使用execve()系统调用使beexec替换原进程的执行映像。
我想可能我两个文件的路径不一致,可是怎么把他们的路径搞成一致呢?
难道要把两个工程的文件弄到一个文件夹下吗?
高手支招,教我如何操作?谢谢!

此帖出自Linux开发论坛
点赞 关注
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表