Deutsch English Français Italiano |
<v3te2i$1ms1q$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Malcolm McLean <malcolm.arthur.mclean@gmail.com> Newsgroups: comp.lang.c Subject: Re: Running an editor from ANSI C Date: Thu, 6 Jun 2024 23:43:30 +0100 Organization: A noiseless patient Spider Lines: 39 Message-ID: <v3te2i$1ms1q$1@dont-email.me> References: <v3pge7$uf2i$1@dont-email.me> <v3r2pl$16mtl$1@dont-email.me> <v3r7v8$1b57j$1@dont-email.me> <v3rek5$1c4i5$1@dont-email.me> <v3rrtm$1e6g8$1@dont-email.me> <v3ru84$1eafb$1@dont-email.me> <87o78dzw1a.fsf@nosuchdomain.example.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Fri, 07 Jun 2024 00:43:31 +0200 (CEST) Injection-Info: dont-email.me; posting-host="1692f2b2c55fb8c8619dc1146ee1c7c9"; logging-data="1798202"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19afwrqtNcIgfam9TVESpFVA78+KKeXtmk=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:ZCKadsK4GOftfApp02IgyBbKYOk= Content-Language: en-GB In-Reply-To: <87o78dzw1a.fsf@nosuchdomain.example.com> Bytes: 2957 On 06/06/2024 20:54, Keith Thompson wrote: > David Brown <david.brown@hesbynett.no> writes: >> On 06/06/2024 10:27, Malcolm McLean wrote: >>> It does work. But my compiler warns about rmpnam() being deprecated. >> >> I presume you mean "tmpnam()" here. No, it has not been deprecated - >> not even in C23. I could be wrong, but this sounds like one of MSVC's >> arbitrary self-declared deprecations, using scare tactics to encourage >> people to use MSVC's own functions rather than standard C functions, >> thus locking you into their tools and platform. > [...] > > You're right, tmpnam() is not deprecated either by ISO C or by POSIX. > > But tmpfile() is likely to be better for most purposes. It creates a > file and returns a FILE*. tmpnam() returns a string pointer, and it's > possible that some other process could create a file with the same name > before the caller has a chance to create it. > > (mkstemp() is more flexible, but is not defined by ISO C.) > I want to run nano (or vi, or ed), in a shell running a pure ansi C program. So the way to do it is to create a file, write the text you want edit to it, them call system("nano readme.txt"). Nano then grabs the cobsole, which is what you want. You then read the file to get the edited data. The shell isn't just a proof og concept. It has a practical purpose, because it is FileSystem XML file editor. Whilst I'm playing about putting Basic into it for fun, the real purpose is serious. And the user must have an easy way of editing text files in the FileSystem file. But it becomes effectively a virtual computer in its own right. -- Check out Basic Algorithms and my other books: https://www.lulu.com/spotlight/bgy1mm