Getopt 移位 optarg

2024-03-26

我需要这样调用我的程序:

./program hello -r foo bar

我从 argv[1] 中打招呼,但我在值栏上遇到问题,我还应该将“r:”更改为其他内容吗?

while((c = getopt(argc, argv, "r:")) != -1){
   switch(i){
   ...
   case 'r':
     var_foo = optarg;
     //shell like argument shift here?
     var_bar = optarg;
     break;
...}

我知道我可以通过传递 argv 来做到这一点,但是有没有办法用 getopt 来做到这一点,就像在 bash 中一样?

Thanks.


bar在人们眼中不是一个选项参数getopt。相反,GNUgetopt 重新排列位置参数,以便在处理结束时,您有argv[3]是“你好”和argv[4]是“酒吧”。基本上,当你完成 getopting 后,你仍然有位置参数[optind, argc)处理:

int main(int argc, char * argv[])
{
     {
         int c;
         while ((c = getopt(argc, argv, ...)) != -1) { /* ... */ }
     }

     for (int i = optind; i != argc; ++i)
     {
         // have positional argument argv[i]
     }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Getopt 移位 optarg 的相关文章

  • 如何从该 Voronoi 图数据中获取单元格字典?

    使用找到的voronoi delaunay图生成库在这个节目中 http sourceforge net projects mapmanager 这是基于 财富 最初的实施他的算法 http en wikipedia org wiki Fo
  • c++11 正则表达式比 python 慢

    嗨我想了解为什么以下代码使用正则表达式进行分割字符串分割 include
  • CMake 和 Visual Studio:如何获得快速、安静的命令行构建?

    我有一个 cmake 项目 它成功地完成了我想要的一切 但我有大约 100 个文件 当我只需要重新编译一个文件时 我厌倦了每次看到生成的巨大输出 每个文件 30 行 明确地说 我正在编译cmake build 得到这个结果 我需要传递给编译
  • C 中的复合语句表达式

    下面的代码不起作用 int i void 999 100 添加括号就可以了 为什么 int i void 999 100 还有另一种方法可以完成此类分配 int i void 999 100 是什么让他们与众不同 在这份声明中 int i
  • 泛型与接口的实际优势

    在这种情况下 使用泛型与接口的实际优势是什么 void MyMethod IFoo f void MyMethod
  • 避免集合已修改错误

    Issue 我有以下代码 foreach var ItemA in GenericListInstanceB ItemA MethodThatCouldRemoveAnyItemInGenericListInstanceB 显然我得到一个错
  • 基于 MS Bot Framework 中的响应分支对话框/表单

    我们正在尝试使用 MS Bot Framework 但尚未完全弄清楚如何实现此场景 我们有一个 LUIS 对话框 类型 它工作正常并且经过适当的培训 以常见的三明治为例 LUIS 意图寻找的基本内容是用户询问订单状态 如果问题中提供了订单号
  • 具有多重继承的类的 sizeof

    首先 我知道 sizeof 取决于机器和编译器的实现 我使用的是 Windows 8 1 x64 gcc 5 3 0 没有标志传递给编译器 我从大学讲座中得到了以下代码 include
  • Entity Framework 4.1 RC:Code First EntityTypeConfiguration 继承问题

    我尝试使用通用的 EntityTypeConfiguration 类来配置所有实体的主键 以便每个派生的配置类不会重复自身 我的所有实体都实现一个公共接口 IEntity 它表示每个实体必须有一个 int 类型的 Id 属性 我的配置基类如
  • 正则表达式删除某些字符周围不需要的空格

    我正在尝试从 JavaScript 文件中删除一些不需要的空格 并在将文件发送到客户端之前使用 C 和 Regex 组合文件 我有一个JavascriptHandler处理 js 文件 效果很好 这是我用来 打包 JavaScript 的函
  • C++ 中的 Java ArrayList [重复]

    这个问题在这里已经有答案了 在Java中我可以做 List
  • 获取给定EntityType的导航属性

    我在用VS2010 EF4 0 需要如下功能 private string GetNaviProps Type entityType eg typeof Employee NorthwindEntities en new Northwind
  • 如何用C++解析复杂的字符串?

    我试图弄清楚如何使用 解析这个字符串sstream 和C 其格式为 string int int 我需要能够将包含 IP 地址的字符串的第一部分分配给 std string 以下是该字符串的示例 std string 127 0 0 1 1
  • 为什么C++变量是指针时不需要正确定义?

    我对 C 语言完全陌生 特别是指针 经验主要是 PHP 并且希望对以下内容进行一些解释 我已经尝试寻找答案 这两行代码如何能够在我的程序中完成完全相同的工作 第二行似乎违背了我迄今为止所学到和理解的关于指针的一切 char disk 3 D
  • .Net Core 中的脚手架以及解决方案中的多个项目

    我创建了一个针对 net461 的 Net Core MVC6 应用程序 我使用了一个我非常熟悉的项目结构 其中我将数据 模型和服务类放置在单独的类库项目中 并且 Web 项目引用这些项目 当我尝试搭建控制器时 我收到一条错误 指出我正在搭
  • 如何使用 libpq 获取双精度值?

    The examples http www postgresql org docs 9 3 interactive libpq example htmllibpq 文档中展示了如何通过将整数值转换为主机字节序表示来获取整数值 我很好奇必须做
  • C 中什么函数可以替换字符串中的子字符串?

    给定一个 char 字符串 我想查找所有出现的子字符串并将其替换为备用字符串 我没有看到任何简单的函数可以实现这一点
  • 如何使用简历实现一个“一网打尽”的异常处理程序?

    我想知道我怎样才能写一个抓住他们全部应用程序级别的异常处理程序将为用户提供恢复应用程序流程的选项 如果您正在运行 Windows 窗体应用程序 将处理程序添加到Application ThreadException event
  • 将小数格式化为两位或整数

    对于 10 我想要 10 而不是 10 00 对于 10 11 我想要 10 11 没有代码可以实现吗 即通过指定格式字符串类似于 0 N2 decimal num 10 11M Console WriteLine num ToString
  • 编译器可以报告未知属性的错误吗?即使有范围?

    在N3291 7 6 1 3 5 属性语法和语义 decl attr grammar 关于如何属性是用我读过的源代码写的 使用一个属性范围令牌是有条件支持的 实现定义的行为 and For an 属性标记本国际标准中未指定 该行为是实现定义

随机推荐

  • Nodejs、multer、aws S3

    如何应用 uuid 和日期 以便存储在数据库中的文件名和存储在 S3 存储桶中的文件名相同 在当前的实现中 即使帖子是在几小时后发布的 uuid 和日期也始终相同 有人可以帮忙吗 真的很感激 const s3 new AWS S3 acce
  • 基于定义的时间间隔(bin)的时间序列平均值

    这是我的数据集的示例 我想每 10 秒根据时间 即 ts 计算一次 bin 平均值 您能否提供一些提示以便我可以继续 就我而言 我想平均每 10 秒的时间 ts 和 Var 比如我会得到Var和ts从0到10秒的平均值 我将得到另一个 Va
  • 锐化图像以检测纸上印有“X”对象的边缘/线条

    我正在使用 python 和 opencv 我的目标是检测用树莓派相机拍摄的图像中的 X 形碎片 该项目是我们预先打印井字游戏板 并且每次将新棋子放置到板上时都必须对板进行成像 带有墨水印章 然后输出表明什么类型的棋子 如果有的话 位于井字
  • awk -cut 如何删除带有字段分隔符的第二列

    我有一个 csv 文件 其中的数据如下 o 022344527 o lonyfoe o Joe o Joe o Otieno 我正在尝试删除第二列 Output o lonyfoe o Joe o Joe o Otieno 有任何想法吗 这
  • Scala 中的有效标识符字符

    我觉得很困惑的一件事是知道我可以在方法和变量名称中使用哪些字符和组合 例如 val 1 legal val 1 illegal val 1 legal val 1 legal val 2 1 illegal val 2 1 legal va
  • cuda简单应用程序适用于32位而不适用于64位

    我的简单 cuda helloworld 应用程序在 Windows 10 上使用 Visual Studio 2015 社区构建 32 位时运行良好 但是 如果我在 64 位中构建它 则不会执行 GPU 特斯拉K40c 工具包 CUDA
  • 在 application.yml 中设置根日志记录级别

    我将 application properties 与 Spring Boot 1 3 M1 一起使用 并开始将其转换为 yaml 文件 因为它变得越来越复杂 但我在将其转换为 yaml 时遇到问题 logging level WARN l
  • 计算地图:提前计算价值

    我有一个计算地图 http guava libraries googlecode com svn trunk javadoc com google common collect MapMaker html makeComputingMap
  • Firefox 中 CSV 文件的数据 URI 未添加 .csv 扩展名

    我的 javascript 文件中定义了一个 下载文件 href downloadTag html a href Download a 在 Chrome 中 它按预期工作 即当我单击此下载链接时 它给出的文件名为 download csv
  • inflate 后 findViewById 在自定义 View 中返回 null

    我有一个习惯RelativeLayout我在其中填充了一个 xml res 文件 如果我在 xml 文件中使用自定义布局并将其设置为 contentview 则效果很好 但是如果我尝试将其添加到代码中new LocationItem thi
  • 通过指针的二维数组

    我想创建一个存储排列序列的动态数组 这样 order 0 1 2 3 order 1 2 1 3 order 2 2 3 1 假设 order m n m 排列数 n 项数 m 和 n 是实时识别的 我做了下面的操作 发现指针地址重叠 导致
  • 反应式编程和函数式反应式编程之间的区别

    我最近一直在对反应式编程进行一些研究 我发现很难找到反应式编程和反应式编程之间差异的良好描述 功能性 反应性的 反应式编程是否只是使用函数式方法 范式而不是使用声明式或面向对象范式来实现 函数式响应式编程 FRP 是一种具有特定语义的特定编
  • 扩展 React.js 组件

    我最欣赏 Backbone js 的事情之一是继承的工作方式简单而优雅 我开始掌握 React 但在 React 中找不到任何类似于此 Backbone 代码的内容 var Vehicle Backbone View extend meth
  • 使用 pdfbox 调用 acroform.getFields() 时获取 null

    我试图以 pdf 形式获取所有可用字段 但遇到了NullPointerException打电话时acroform getFields 使用 PDFBox Sample pdDoc PDDocument load fileName PDAcr
  • // doxygen 中的注释

    我有一个 C 项目 需要使用 doxygen 进行记录 它拾取由 Visual Studio 自动生成的评论 但不幸的是它没有正常显示 评论 是否有我缺少的配置设置 或者这是不可能的 被称为XML 文档注释 http msdn micros
  • 无法对非静态方法进行静态引用

    我已经搜索了这个问题并找到了很多关于它的答案 但是我不理解它们 我想对我自己的代码进行澄清 所以希望它有意义 我正在尝试在 main 方法中调用 PrintList 方法 但我收到这个错误 无法从 Stack 类型对非静态方法 PrintL
  • 如何在 webgram 中监听 Telegram 消息/推送通知

    我需要通过 Telegram API 接收最新的 telegram 更新 看来 webogram 是该任务唯一最新的 javascript 库 我之前使用的是 telegram link 它通过 TCP 很好地完成了任务 我想知道 webo
  • 如何在不使用 for 循环或 try 语句的情况下有效地拆分一个字符串中的货币符号和数字

    我有一个像这样的字符串 200 000 000 or Yan300 000 000 我想拆分货币和数字 并输出一个元组 200000000 没有 在数字字符串中 目前我正在使用以下脚本 该脚本正在运行 def splitCurrency c
  • 语义词法分析器谓词性能

    我有一个词法分析器为传递给词法分析器的宏字符串的动态列表创建 MACRO 标记 我在最顶层的词法分析器规则中使用了语义谓词来实现此功能 MACRO macros null tryMacro Where tryMacro 只是检查是否有任何宏
  • Getopt 移位 optarg

    我需要这样调用我的程序 program hello r foo bar 我从 argv 1 中打招呼 但我在值栏上遇到问题 我还应该将 r 更改为其他内容吗 while c getopt argc argv r 1 switch i cas