Hi, Le lundi 04 mars 2019 à 08:04 -0500, Jeffrey Walton a écrit : > On Sun, Mar 3, 2019 at 6:00 AM Greg KH <greg@xxxxxxxxx> wrote: > > > > On Sun, Mar 03, 2019 at 03:55:44AM -0500, Jeffrey Walton wrote: > > > ... > > > > Again, go delete modem manager off of your system, it is the thing that > > keeps opening the port up to see if you have made a valid connection on > > the device or not. If you write your own program to talk to the device, > > modem manager is not needed at all, and is known to cause this problem. > > Thanks Greg. I deleted modem manager, then ran two instances of my > program. Both opened the device with O_EXCL, and both opens succeeded. > They proceeded to much with one another's state. > http://man7.org/linux/man-pages/man2/open.2.html "In general, the behavior of O_EXCL is undefined if it is used without O_CREAT. There is one exception: on Linux 2.6 and later, O_EXCL can be used without O_CREAT if pathname refers to a block device. If the block device is in use by the system (e.g., mounted), open() fails with the error EBUSY." O_EXCL is intended to be used to prevent opening an existing file. Said differently, it's used to ensure a new file is created, useful to prevent race condition, where multiple processes compete to create a file. For example think of temporary file created with random name. Regards -- Yann Droneaud OPTEYA _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies