如何解决如何使用 C++ 程序调用路径 /usr/bin 中的可执行文件?
我在 linux 机器的 /usr/bin 路径中有一个基于 GUI 的可执行文件 这个可执行文件需要三个参数 - 两个整数值和一个字符
你能告诉我如何从用户空间 C++ 程序调用和运行这个可执行文件
解决方法
不要无故不回答这个问题
df = pd.DataFrame({'date':[datetime.date(2021,3,3),datetime.date(2021,4)],'player':['a','b'],'score':[10,9]})
print(type(df['date'][0]))
<class 'datetime.date'>
df = df.set_index('date')
print(type(df.index.get_level_values('date')[0]))
<class 'datetime.date'>
df = df.reset_index()
print(type(df['date'][0]))
<class 'datetime.date'>
df = df.set_index(['date','player'])
print(type(df.index.get_level_values('date')[0]))
<class 'pandas.tslib.Timestamp'>
df = df.reset_index()
print(type(df['date'][0]))
<class 'pandas.tslib.Timestamp'>
将参数构建为字符串,fork 并执行它。真的很琐碎。不要忘记pid_t runprocess(int arg1,int arg2,char arg3)
{
static const char program[] = "/usr/bin/...";
char arg1c[12];
char arg2c[12];
char arg3c[2];
sprintf(arg1c,"%d",arg1);
sprintf(arg2c,arg2);
arg3c[0] = arg3;
arg3c[1] = 0;
pid_t pid = vfork();
if (pid == 0) {
signal(SIGHUP,SIG_IGN); /* since it's a GUI program,detach from console HUP */
close(0); /* and detach from stdin */
if (open("/dev/null",O_RDWR)) _exit(137); /* assertion failure */
execl(program,program,arg1c,arg2c,arg3c,NULL);
_exit(errno);
}
return pid;
}
。
由于子进程是一个 GUI 进程,我们将 HUP 与我们可能正在运行或可能未运行的终端分离,并用 wait()
替换 stdin。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。