微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 C++ 程序调用路径 /usr/bin 中的可执行文件?

如何解决如何使用 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 举报,一经查实,本站将立刻删除。