argv[0] 可以包含空字符串吗?

2024-02-21

在任何 C 程序中,命令行参数argv[0]指向用于调用程序的名称。有没有什么情况会指向空字符串""?

这种情况的示例代码片段将是一个很好的参考。


它是实现定义的。 §5.1.2.2.1 删节:

  • 如果值argc大于零,数组成员argv[0]通过argv[argc-1]包容性应包含指向字符串的指针,这些字符串给出 在程序启动之前由主机环境实现定义的值。这 目的是向程序提供在程序启动之前确定的信息 来自托管环境中的其他地方。 [...]

  • 如果值argc大于零,指向的字符串argv[0]代表程序名称;argv[0][0]如果 程序名称无法从主机环境中获得。 [...]

So if argc大于零,这相当意图 that argv[0]永远不会是空字符串,但它可能会发生。 (请注意,与argc等于n, argv[0]通过argv[n - 1]永远不会为空并且总是指向一个字符串。不过,字符串本身可能是空的。如果n为零,argv[0]一片空白。)

当然,在实践中,您只需要确保您所针对的平台按需要运行即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

argv[0] 可以包含空字符串吗? 的相关文章

  • UTF8/UTF16 和 Base64 在编码方面有什么区别

    In c 我们可以使用下面的类来进行编码 System Text Encoding UTF8 System Text Encoding UTF16 System Text Encoding ASCII 为什么没有System Text En
  • boost::multi_index_container 复合键中的 equal_range 与比较运算符

    我正在尝试从多索引容器查询结果 其中值类型是三个元素的结构 第一个值已给出 但第二个和第三个值必须大于或小于查询参数 经过搜索后 我发现必须实现自定义密钥提取器 并且这里的一些链接建议相同 但我无法实现它 boost multi index
  • 在 LINQ 查询中返回不带时间的日期

    我正在编写一个查询 我想计算按日期联系我们的呼叫中心的次数 看起来很简单 但由于联系日期字段是日期时间字段 我得到了时间 因此当我按联系日期 时间 分组时 每个联系日期实例的计数为 1 所以 我想只按日期分组 而不按时间分组 下面是我用来查
  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • C++ 求二维数组每一行的最大值

    我已经设法用这个找到我的二维数组的每一行的最小值 void findLowest int A Cm int n int m int min A 0 0 for int i 0 i lt n i for int j 0 j lt m j if
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • 为什么 POSIX 允许在只读模式下超出现有文件结尾 (fseek) 进行搜索

    为什么寻找文件结尾很有用 为什么 POSIX 让我们像示例中那样在以只读方式打开的文件中进行查找 c http en cppreference com w c io fseek http en cppreference com w c io
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • 在 ASP.NET 中将事件冒泡为父级

    我已经说过 ASP NET 中的层次结构 page user control 1 user control 2 control 3 我想要做的是 当控件 3 它可以是任何类型的控件 我一般都想这样做 让用户用它做一些触发回发的事情时 它会向
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器

随机推荐

  • 从Java中的mimepart获取图像的base64内容字符串

    我正在尝试获取 MimeMultiPart 中 MimePart 的 base64 内容 但我在使用 Javamail 包时遇到了困难 我只是想要某个内联图像的 base64 编码字符串 但似乎没有一种简单的方法可以做到这一点 我写了一个方
  • AngularJS:如何从控制器功能切换视图?

    我正在尝试使用ng clickAngularJS 的切换视图功能 我将如何使用下面的代码来做到这一点 索引 html div div click me div div 控制器 js function Cntrl scope scope so
  • 打击存在不起作用

    实际上我使用 smack API 编写了一个 IM 服务 继承了 google chat 但是当我想打印好友列表及其存在时 编译模式显示所有存在不可用 但在调试模式下它显示真正的可用性 我的代码是 1 创建连接 public boolean
  • 使用 Chart.js 绘制条形图的 X 轴多色标签

    我需要不同颜色的 x 轴标签 我使用 chart js 我尝试了下面的代码 但它不起作用 只显示单色 scales xAxes ticks fontColor rgba 245 88 97 1 rgba 245 88 97 1 rgba 2
  • 如何在 Rust 中创建具有常量值的枚举?

    我可以做这个 enum MyEnum A i32 B i32 但不是这个 enum MyEnum A 123 123 is a constant B 456 456 is a constant 我可以创建结构A and B使用单个字段 然后
  • 删除传单地图上的图例

    我有一个传单地图 设置为当用户单击按钮时根据类别更改样式 实时地图 http maneesha github io test map html http maneesha github io test map html 源代码 https
  • Android MediaCodec 输出格式:GLES 外部纹理 (YUV/NV12) 到 GLES 纹理 (RGB)

    我目前正在尝试在 Android 上开发一个视频播放器 但在颜色格式方面遇到了困难 Context 我通过以下标准组合提取和解码视频媒体提取器 媒体编解码器 因为我需要提取的帧可用作 OpenGLES 纹理 RGB 我设置了我的解码器 媒体
  • 更改 FontSize 以适合 TextBlock

    我正在开发 Windows 8 应用商店应用程序 我们知道显示尺寸有很大不同 因此所有元素都有可拉伸设置 因此如果显示较小 元素 图片 图表等 较小 如果显示较大 则较大 除了 TextBlocks 标签 之外 一切都完美 TextBloc
  • 如何将图标添加到我的存储库?

    我发现 Gitlab 和 SourceTree 支持每个存储库的图标 这使得它们更加具体且易于一眼找到 这怎么可能 作为开发人员 我们有时需要进行更改以使我们的工具看起来有所不同 你可以添加一个小的 我更喜欢96px x 96px logo
  • 有什么跨平台方法可以从标头构建 cpp 骨架吗? [复制]

    这个问题在这里已经有答案了 我厌倦了将标头复制粘贴到我的 cpp 文件中 然后对其进行修改 直到其格式正确 有没有人编写过一个程序来读取头文件并制作相应的cpp框架 我需要一些跨平台的东西或者至少可以在 Linux 上运行的东西 vim 插
  • 使用全名搜索时,Gem Ransack 不会返回任何结果

    我正在使用 Ransack 和 Rails 3 我的看法 p class button p 我的架构 create table users force gt true do t t string first name
  • 从 SQL Server 中的表中选择 XML

    我的表中存储有 XML 该表具有 int 类型的列 id 和 XML 类型的值 我正在使用 SQL Server 2012 XML 看起来像这样
  • IPython %timeit 魔法的 -n 和 -r 参数

    我想使用以下方法对代码块进行计时timeitJupyter 笔记本中的魔法命令 根据文档 timeit需要几个参数 其中两个特别控制循环次数和重复次数 我不清楚这两个论点之间的区别 例如 import numpy N 1000000 v n
  • 如何检查列表中的任何单词是否包含部分字符串?

    var list alist Contains somestring 这匹配整个字符串 如何查看列表中的任何单词是否具有匹配 somestring 的子字符串 您可以使用可枚举 任意 http msdn microsoft com en u
  • gitosis 在哪里存储工作副本?

    我想知道 gitosis 在哪里存储我的存储库的工作副本 我可以通过 gitweb 界面看到文件树 但在 srv gitosis repositories testrepo 中找不到任何工作副本 我还能够推送和克隆到存储库 但是 在不知道工
  • 是否可以在 Delphi 可执行应用程序中嵌入并运行 exe 文件?

    资源文件 RES 接受任何类型的二进制文件 但如果它是 exe 文件 我该如何运行它 您必须将其作为文件提取到磁盘并执行它 尽管您不必将其提取到磁盘 正如 Cosmin Prund 在评论中所说 但如果您不这样做 则需要大量的艰苦工作
  • 如何构造一个不区分大小写的枚举?

    我有一个简单的 Python 2 7 枚举 from enum import Enum class Label enum RedApple 1 GreenApple 2 我希望能够使用不区分大小写的键创建枚举对象 fruitname red
  • 如何将命令行参数转换为 int?

    我需要获取一个参数并将其转换为 int 到目前为止 这是我的代码 include
  • R:从字符串定义函数

    我想定义一个函数f来自参数和表达式character从 a 读取的字符串 csv文件 这个功能f有以下表达式 f function parameters expression 其中参数是 n 个参数的列表 表达式是这些参数的函数 例如 参数
  • argv[0] 可以包含空字符串吗?

    在任何 C 程序中 命令行参数argv 0 指向用于调用程序的名称 有没有什么情况会指向空字符串 这种情况的示例代码片段将是一个很好的参考 它是实现定义的 5 1 2 2 1 删节 如果值argc大于零 数组成员argv 0 通过argv