c - 你如何在 Unix 终端中为你的 C 程序实现选项?

标签 c

我想在我的 c 程序中添加一个 -r 选项。这样当它在终端的命令行中使用时,它会为我的程序触发不同的操作。我如何告诉我的 c 程序,当它特别看到文本 -r 时,它将跳转到将执行该替代功能的代码段?

到目前为止我做了什么:
到目前为止,我已经设置了我的 c 程序来处理文件,但没有设置选项,所以我的程序能够以这种方式处理文本文件,它以某种方式格式化文本文件并将其打印出标准输出:

./p4.out < 一些文本文件

./p4.out 一些文本文件

从 C by Discovery by Foster 我想出了如何通过使用 FILE 指针和以下内容来做到这一点
主程序形式:

void main(argc, char *argv[])

在我的代码中,我有 if 语句来指示是否有要处理的输入文件或只是通过以下 if 语句从标准输入读取:
if(argc == 1){

//do something with standard in (stdin)

}

if(argc == 2){

//do something with one file parameter (sometextfile)

}

我想添加的功能:
特别是我的 c 程序应该能够采用这样的参数:
./p4.out -r
./p4.out -r sometextfile
./p4.out sometextfile -r

-r 功能应该由我的主程序读取,然后指示应该反转文本文件中的字符。 C by discovery 2nd edition 没有提到如何向 c 程序添加选项,所以我不知道该怎么做。

最佳答案

您要么为您的特定程序制定逻辑,要么使用如下所述的库:http://www.gnu.org/software/libc/manual/html_node/Parsing-Program-Arguments.html#Parsing-Program-Arguments

关于c - 你如何在 Unix 终端中为你的 C 程序实现选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20333028/

相关文章:

c - 在 C 中用字符串加上整数

c - 如何在输入的同一行上打印输出?

Linux上的C程序耗尽内存

c - 在不使用任何库(如 cuda 或 opencl)的情况下对 gpu 进行编程?

c - 预期声明说明符错误,声明外部堆栈时

c - 如何将 HTML 页面从 C 网络服务器发送到网络浏览器

c - getch 期望额外的字符

c - 将文件中的行读入字符数组

C 中的 Javascript 回调编码风格?

objective-c - 不同文件中的字符串文字是否具有相同的内存地址?