有没有办法使用文件指针从正在运行的c程序中运行程序和/或文件,还是必须使用正常的文件名和system / fork等?如果重要的话,请在linux上写这个。
基本上,我在问这样的事情是否可行:
FILE * fp=fopen("somefile")
//dostuff
运行fp指向的文件(使用fp,不使用文件名)
答案 0 :(得分:3)
有没有办法从正在运行的c中运行程序和/或文件 程序使用文件指针
你所要求的并不是很清楚所以我会试着告诉你一些你能做到的方法。
也许你在谈论execve()
:
int execve(const char *filename, char *const argv[], char *const envp[]);
其中execve()
执行filename指向的程序,argv
是传递给新程序的参数字符串数组。类似地,fexecve()
与execve()
的工作方式相同,区别在于要执行的文件是通过文件描述符fd
指定的,而不是通过路径名指定。
或者,您可以使用system()
来运行某些程序。例如:
int result = system("./myProgram 2 3");
这将等待 myProgram 被执行,然后将获得exitcode。
最后但并非最不重要的是,您可以使用fork()
用于创建流程的系统调用。