github.com/opencontainers/runc@v1.2.0-rc.1.0.20240520010911-492dc558cdd6/libcontainer/dmz/_dmz.c (about)

     1  #ifdef RUNC_USE_STDLIB
     2  #  include <linux/limits.h>
     3  #  include <stdio.h>
     4  #  include <string.h>
     5  #  include <unistd.h>
     6  #else
     7  #  include "xstat.h"
     8  #  include "nolibc/nolibc.h"
     9  #endif
    10  
    11  extern char **environ;
    12  
    13  int main(int argc, char **argv)
    14  {
    15  	if (argc < 1)
    16  		return 127;
    17  	int ret = execve(argv[0], argv, environ);
    18  	if (ret) {
    19  		/* NOTE: This error message format MUST match Go's format. */
    20  		char err_msg[5 + PATH_MAX + 1] = "exec ";	// "exec " + argv[0] + '\0'
    21  		strncat(err_msg, argv[0], PATH_MAX);
    22  		err_msg[sizeof(err_msg) - 1] = '\0';
    23  
    24  		perror(err_msg);
    25  	}
    26  	return ret;
    27  }