Path: ...!3.eu.feeder.erje.net!feeder.erje.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.lang.c Subject: Re: Writing own source disk Date: Wed, 05 Jun 2024 11:26:40 -0700 Organization: None to speak of Lines: 28 Message-ID: <87sexrz1nj.fsf@nosuchdomain.example.com> References: <87sexvm1lr.fsf@bsb.me.uk> <87mso2mky5.fsf@bsb.me.uk> <87h6e91r91.fsf@nosuchdomain.example.com> <87cyox1r5e.fsf@nosuchdomain.example.com> <87wmn3z2dp.fsf@nosuchdomain.example.com> MIME-Version: 1.0 Content-Type: text/plain Injection-Date: Wed, 05 Jun 2024 20:26:40 +0200 (CEST) Injection-Info: dont-email.me; posting-host="e46fb4f9b5052ac42d5a7acf6667e1c2"; logging-data="1129759"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+vGHQVodMED+BSNri5pEPI" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) Cancel-Lock: sha1:as+h7jrt2kEl8RIpS+MHUefzpvg= sha1:AKP9E2CZqUAoqI3cbkpQkxDZ+Xo= Bytes: 2462 scott@slp53.sl.home (Scott Lurndal) writes: > Keith Thompson writes: >>Mikko writes: >>> On 2024-06-04 00:35:25 +0000, Keith Thompson said: >>[...] >>>> #embed is of course handled at compile time. It's very likely, but >>>> still not quite guaranteed, that `#embed __FILE__` will be able to >>>> access the source file. >>> >>> An operating system might refuse to open an already opened file. >>> There is no good reason to refuse when all accesses are for read-only >>> but a supid operating system might think otherwise. >> >>That seems unlikely, and would be a concern only if some real-world OS >>actually behaved that way. > > IIRC windows has some restrictions on when a file can be opened vis > a vis other processes also having it open. > > But I don't do windows and my recollection could be faulty. My understanding is that there can be one writer or multiple readers. That wouldn't affect `#embed __FILE__`. Allowing only one reader would break a *lot* of functionality. -- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com void Void(void) { Void(); } /* The recursive call of the void */