是否有任何方法可以使用文件指针从正在运行的 c 程序中运行程序和/或文件,或者必须使用正常的文件名和系统/fork 等?如果重要的话,在 Linux 上写这个。
本质上,我是在问这样的事情是否可能:
FILE * fp=fopen("somefile")
//dostuff
在这里运行fp指向的文件(使用fp,而不是文件名)
最佳答案
Is there any way to run a program and/or file from within a running c program using a file pointer
目前还不清楚您要问什么,因此我将尝试向您展示一些可以做到这一点的方法。
也许您正在谈论 execve()
:
int execve(const char *filename, char *const argv[], char *const envp[]);
其中execve()
执行文件名指向的程序,argv
是传递给新程序的参数字符串数组。同样有 fexecve()
其工作方式与 execve()
相同,不同之处在于要执行的文件是通过文件描述符 fd
指定的,而不是通过路径名。
或者,您可以使用system()
用于运行某些程序。例如:
int result = system("./myProgram 2 3");
这将等待myProgram被执行,然后将获取退出代码。
最后但并非最不重要的一点是,您可以使用 fork()
用于创建进程的系统调用。
关于c - C 程序中从指针运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43880903/