c - 命令行输入 '\0'字符怎么办?

标签 c command-line-interface

int main(int argc,char* argv[]);

如果A中有一个'\0'字符,它会被拆分成2个参数吗?

./programe "A"

我不能轻易重现它,因为我不能将 '\0' 放入 A,但也许有人可以。

最佳答案

参数作为 C 字符串传递给程序;特别是,execve() 系统调用(程序可见的最低级别,通常非常接近或等同于内核 API)使用 C 字符串,因此不可能传递 \0 在参数中。请注意,虽然内核将参数 vector 传递到进程地址空间的通常方式是连续的,因此嵌入式 \0 确实会拆分参数,但低级 exec( ) 接口(interface)使用 (char *) 列表,因此嵌入的 \0 会提前终止参数。

关于c - 命令行输入 '\0'字符怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6560779/

相关文章:

azure - 使用 Azure CLI 将文件夹从 PC 上传到存储帐户容器

java - 如何在 CLI 上运行 maven 生成的 jar

从 C 库调用 C++ 应用程序代码?

创建动态数量的线程

c - 真实数据序列上的 FFTW

c++ - DB2 用户定义函数和自定义模式

java - Spring Shell - 使用和执行

.net - 每个 .NET 类的最大方法数是多少

c - 内存指针

c - 段错误问题