Re: Issue with fcntl FD_CLOEXEC and execve

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

Thanks a lot for the tip; I changed my fcntl call to the following: "fcntl(myfd, F_SETFD, FD_CLOEXEC)" and that fixed the problem.

I can now run and control external processes using the same API across most platforms!

I wish the man pages of fcntl could have been clearer about how you were supposed to apply the FD_CLOEXEC flag...

Yuri Edward


On 6/21/20 9:57 PM, Florian Weimer wrote:
* Yuri Edward:

https://github.com/BlockProject3D/Framework/blob/ProcessManagement/Base/src/Framework/System/Process.cpp
  > This is the main class that performs fork, pipe, read, write and
     if (fcntl(commonfd[PIPE_WRITE], FD_CLOEXEC, 1) != 0)

That's not how fcntl works.  You need to use F_GETFD and F_SETFD to
set the FD_CLOEXEC flag.



[Index of Archives]     [Linux Assembler]     [Git]     [Kernel List]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [C Programming]     [Yosemite Campsites]     [Yosemite News]     [GCC Help]

  Powered by Linux