Je *_*Rog 3 c command-line-interface
int main(int argc,char* argv[]);
Run Code Online (Sandbox Code Playgroud)
如果有一个'\0'字符A,它会被分成两个参数吗?
./programe "A"
Run Code Online (Sandbox Code Playgroud)
我不能轻易地重现它,因为我不能把它'\0'放入A中,但可能有人可以.
参数作为C字符串传递给程序; 特别是,execve()系统调用(程序可见的最低级别,通常是非常接近或与内核API相同的以太网)使用C字符串,因此无法\0在参数内传递.请注意,虽然内核将参数向量传递到进程的地址空间的通常方式是连续的,因此嵌入式\0确实会拆分参数,低级exec()接口使用(char *)s 列表,因此嵌入式\0只会终止参数早.