首先,我编写了一个c++代码,如下所示:
#include <cstdio>
int main()
{
int a,b;
while(scanf("%d %d",&a,&b) == 2)
printf("%d\n",a+b);
return 0;
}
我用g++ -o a a.cpp
来完成它。在
之后,我编写了如下python代码:
^{pr2}$但是,data.out
文件不包含任何内容。也就是说,子进程没有从其父进程继承stdin和stdout。但是当我写一个c++代码时:
#include<unistd.h>
#include<cstdio>
int main()
{
freopen("data.in","r",stdin);a
freopen("data.out","w",stdout);
int pid = fork();
if(pid == 0)
{
char* cmd[]= {"./a","./a"};
execv(cmd[0],cmd);
}
return 0;
}
我在data.out
中得到了正确的答案,也就是说execv在c++代码中工作。在
那么,我该怎么做才能让execv也能在python中工作呢?我真的需要这个功能来工作,有人能告诉我吗?谢谢!在
data.in
包含以下内容:
1 1
在python代码中,您已经打开了新的IO streams,并将}python名称指向这些。它们将有自己的文件描述符(很可能是3和4)。但是,标准文件描述符}将保持不变,并继续指向它们的原始位置。这是当你在C++程序中{{CD5}}进入STDIN和STDUT时所继承的描述符。在
sys.stdin
和{0
和{您需要确保在执行之前调整了实际的文件描述符。在
相关问题 更多 >
编程相关推荐