gpt4 book ai didi

c - 如何检查文件是否在特定目录或其子目录中 C

转载 作者:太空宇宙 更新时间:2023-11-04 06:49:11 24 4
gpt4 key购买 nike

我正在构建自己的 shell,我想知道:我如何知道命令是否位于目录“/bin”及其子目录中。我想实现一个函数 char* path_to_command(char* commandname) ,它返回参数中给定命令的路径。

我一直在寻找确定特定文件是否在目录中的函数(如 fopen 或 access)。但是这些函数只是告诉我们文件是否只在目录中。我正在考虑使用 fopen 的递归函数,我将不得不在其中使用 strcat 很多时间。我相信有更好的解决方案。

英语不是我的母语,如果有错误,我很抱歉。谢谢。

最佳答案

不要自己写递归函数,最好使用标准nftw :

NAME

nftw - walk a file tree

SYNOPSIS

#include <ftw.h>

int nftw(const char *path, int (*fn)(const char *,
const struct stat *, int, struct FTW *), int fd_limit, int flags);

DESCRIPTION

The nftw() function shall recursively descend the directory hierarchy rooted in path.

但是,对于一个标准的 shell 来说,不需要递归搜索(最糟糕的是,这对任何用户来说都是非常奇怪的),你只需要在 PATH 环境变量中提到的目录中搜索。

关于c - 如何检查文件是否在特定目录或其子目录中 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53935170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com