我有这个命令行:> write_strings "Hello World!" a.txt b.txt 目录/a.txt。所有元素(命令、字符串、文件名)都进入一个 char 指针数组。如何获取元素并检查它是字符串还是文件名?我不是指确切的代码行,而是需要这个想法。如果没有字符串,程序应该返回一个错误。
问问题
113 次
3 回答
1
可以在命令行上传递的每个字符串都是一个潜在的路径名,因为在这两种情况下唯一的限制是不能有任何 NUL。
具有命令行语法的程序,其中特定参数可能会或可能不会用作路径名(取决于“文件名字符串”的一些模糊定义,甚至是文件存在测试)是一个糟糕的设计。每个参数都应该具有由其在参数列表中的顺序定义的含义,或者通过与类似-m msg
or的选项相关联来定义-o outputfile
。
一个表现良好的 unix 程序会让用户创建一个文件,Hello world!
如果他愿意的话。
于 2013-11-06T13:48:41.347 回答
0
不考虑程序可能有意义或可能没有意义-您可以char *argv[]
通过循环遍历它们来比较您的单个字符argv[i][j]
。如果每个字符串都包含一个“.txt”,则您没有字符串,这在您的上下文中不是文件名
于 2013-11-06T14:11:50.347 回答