繁体   English   中英

如何检查命令行中是否有字符串

[英]how to check if there's a string in the command line

我有这个命令行:> write_strings“Hello World!” a.txt b.txt dir / a.txt。 所有元素(命令,字符串,文件名)都进入char指针数组。 如何获取元素并检查它是字符串还是文件名? 我并不是指确切的代码行,而只是需要这个想法。 如果没有字符串,程序应该返回错误。

您可以使用诸如stataccess之类的API来检查路径所指向的文件是否存在。 传递给进程时,文件路径和常规字符串之间没有根本区别。

如果你正在使用标准的main(int argc, char *argv[])约定,你可以循环遍历argv ,检查每一个以通过前面提到的系统调用之一查看它是否是一个文件。

可以在命令行上传递的每个字符串都是潜在的路径名,因为在这两种情况下唯一的限制是不能有任何NUL。

具有命令行语法的程序,其中特定参数可能会或可能不会用作路径名(取决于“filename-ish strings”或文件存在测试的某些模糊定义)是一个糟糕的设计。 每个参数都应具有由参数列表中的顺序定义的含义,或者与-m msg-o outputfile类的选项相关联。

一个表现良好的unix程序将让用户创建一个名为Hello world!的文件Hello world! 如果他想。

不考虑程序可能有多么有意义 - 您可以通过argv[i][j]循环遍历char *argv[]的单个字符。 如果每个字符串都包含“.txt”,则表示您没有字符串,这不是您上下文中的文件名

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM