c++ - ”argv的第一个元素指向一个空字符串“是什么意思?
PHPz
PHPz 2017-04-17 12:06:53
0
2
757

当实参传给main函数之后,argv的第一个元素指向程序的名字或者一个空字符串

前半句话我知道,主要是后半句话,argv[0]='\0',这算啥?

PHPz
PHPz

学习是最好的投资!

reply all(2)
左手右手慢动作

argv[0] is the pointer to the initial character of a null-terminated multibyte strings that represents the name used to invoke the program itself (or, if this is not supported by the execution environment, argv[0][0] is guaranteed to be zero).

http://en.cppreference.com/w/c/language/main_function

argv[0] is the pointer to the initial character of a null-terminated multibyte strings that represents the name used to invoke the program itself (or an empty string "" if this is not supported by the execution environment).

http://en.cppreference.com/w/cpp/language/main_function

黄舟

First you have to know how to create a process.
Taking the Windows platform as an example, the standard is to create it through CreateProcess
CreateProcess MSDN: https://msdn.microsoft.com/zh-cn/library/ms682425(v=vs.85).aspx

BOOL WINAPI CreateProcess(
  _In_opt_    LPCTSTR               lpApplicationName,
  _Inout_opt_ LPTSTR                lpCommandLine,
  _In_opt_    LPSECURITY_ATTRIBUTES lpProcessAttributes,
  _In_opt_    LPSECURITY_ATTRIBUTES lpThreadAttributes,
  _In_        BOOL                  bInheritHandles,
  _In_        DWORD                 dwCreationFlags,
  _In_opt_    LPVOID                lpEnvironment,
  _In_opt_    LPCTSTR               lpCurrentDirectory,
  _In_        LPSTARTUPINFO         lpStartupInfo,
  _Out_       LPPROCESS_INFORMATION lpProcessInformation
);

The first parameter is the absolute path of the program, and the second is the command line parameter. If the first parameter exists and the second is empty, then argv will be empty.

Under Linux, the internal implementation is mainly

int execle(const char *path, const char *arg , ..., char * const envp[]); 

That is, arg is empty.
In Windows, open the Task Manager and select Show command line parameters. There are many system processes that do not have command line parameters.

In most cases, at least one command line argument is itself.

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template