c - C 程序中从指针运行函数

标签 c linux fork

是否有任何方法可以使用文件指针从正在运行的 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/

相关文章:

c - V4L2 帧率下降

c - fopen 从变量中读取

linux - 在不同的 Linux 发行版上运行程序

c - fork() 期间重复的段?

c - .bin 和 .dat 文件有什么区别?

C-错误 : array type has incomplete element type in a extern struct declaration

linux - 如何缩进文件+bash中的行

regex - sed regex命令输出以html结尾的行?

Python - 将管道命令 fork 到后台并将其留在那里

c++ - Valgrind 在应用程序运行时打印带有错误的摘要,但在完成后表示不会发生泄漏