gpt4 book ai didi

c - 如何用C完成通配符功能?

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

我是C上的菜鸟,现在想用C来完成一个通配符的功能。比如我写了一个图片处理程序,名字叫myphoto,我想这样使用:myphoto ./photos/*.png,然后myphoto会处理所有的目录中的 png 文件。

我想尽可能简单地解决这个问题,而不是使用正则表达式,我想到了一个想法,也许我可以使用 EXEC 函数来执行命令,但是EXEC 函数只返回 int,不返回 char*。

那么如何解决这个问题呢?谢谢!

最佳答案

它是特定于操作系统的。我给出了 Posix 和 Linux 的观点(在 Windows 上是不同的,我不知道)。

请注意,如果您编写的程序 myprog.c 编译成 myprog 然后运行myprog photos/*.png myprog.c 中的 main 函数正在获取一个字符串数组(声明 int main(int argc , char**argv) 然后参数数组在数组 argv ....) 中有 argc 字符串。扩展由 shell before 启动您的 myprog 二进制可执行文件完成。参见 execve(2)

在 Linux 和 Posix 系统上:阅读 glob(7) , 你可能想使用 glob(3)和/或 fnmatch(3)和/或 wordexp(3) .如果某些数据(例如文件中的一行)包含 photos/*.jpeg 并且您的程序想要“glob”它,那么这些函数很有用。您不需要“glob”main 的参数,这已经由您的 shell 完成了。

阅读Advanced Linux Programming

关于c - 如何用C完成通配符功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26018886/

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