filp_open
是 Linux 系统中用于打开文件的一个系统调用
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
int main() {
int fd;
const char *filename = "/path/to/your/file";
// 使用 filp_open 打开文件
fd = filp_open(filename, O_RDONLY);
if (fd < 0) {
perror("filp_open");
return 1;
}
// 在这里处理文件,例如读取文件内容
// 关闭文件
close(fd);
return 0;
}
如果你想要重定向文件描述符,可以使用 C 库函数 dup2
。例如,将标准输入重定向到文件:
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
int main() {
int fd;
const char *input_file = "/path/to/your/input/file";
const char *output_file = "/path/to/your/output/file";
// 打开输入文件
fd = open(input_file, O_RDONLY);
if (fd < 0) {
perror("open");
return 1;
}
// 将标准输入重定向到输入文件
if (dup2(fd, STDIN_FILENO) == -1) {
perror("dup2");
close(fd);
return 1;
}
// 关闭不再需要的文件描述符
close(fd);
// 在这里处理程序,它将读取来自输入文件的输入
return 0;
}
这个示例将把程序的输入重定向到指定的输入文件。类似地,你可以使用 dup2
函数将标准输出和标准错误重定向到文件。