adamyg / grief

GRIEF - BRIEF clone
http://grief.sourceforge.net/
Other
38 stars 9 forks source link

Mac: vfork #23

Open adamyg opened 2 years ago

adamyg commented 2 years ago

'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]

   #define  _GNU_SOURCE /*top*/
   #if defined(POSIX_SPAWN_USEVFORK) || defined(__GLIBC__) /* force USEVFORK on GNU libc */
    flags |= POSIX_SPAWN_USEVFORK;
   #endif
    posix_spawn_file_actions_t fops;
    posix_spawnattr_t attr;
    sigset_t mask;

    posixspawn_file_actions_init(&fops, options);
    posix_spawnattr_init(&attr);
    flags |= POSIX_SPAWN_SETSIGMASK; /* child does not block any signals */
    sigemptyset(&mask);
    posix_spawnattr_setsigmask(&attr, &mask);
    flags |= POSIX_SPAWN_SETSIGDEF;  /* child reverts SIGPIPE handler to the default. */
    sigaddset(&mask, SIGPIPE);
    posix_spawnattr_setsigdefault(&attr, &mask);  
        posixspawn_set_pgroup(options, &attr, &flags);
        posix_spawnattr_setflags(&attr, flags);    
            posix_spawnp(&pid, file, &fops, &attr, argv, envp ? envp : environ /*global*/);
                 chdir(cwd)  [optional]
        posix_spawn_file_actions_destroy(&fops);
        posix_spawnattr_destroy(&attr); 
adamyg commented 6 months ago

also replace mktemp()