Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <v3vln1$265uv$4@dont-email.me>
Deutsch   English   Français   Italiano  
<v3vln1$265uv$4@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder8.news.weretis.net!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: Fri, 7 Jun 2024 20:06:09 +0100
Organization: A noiseless patient Spider
Lines: 62
Message-ID: <v3vln1$265uv$4@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> <v3te2i$1ms1q$1@dont-email.me>
 <87frtpznoa.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 21:06:10 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="3d5cf5214f2d8b45c65425247320c56d";
	logging-data="2299871"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+LXZDBFyBaWUvhxeOCqfVpwPI/6vhJh6c="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:kKSiLghzpseqdnlQX1W3XN1Gw2k=
Content-Language: en-GB
In-Reply-To: <87frtpznoa.fsf@nosuchdomain.example.com>
Bytes: 4476

On 06/06/2024 23:55, Keith Thompson wrote:
> Malcolm McLean <malcolm.arthur.mclean@gmail.com> writes:
>> 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.
> 
> OK -- but that has nothing at all to do with my post, which was about
> how to generate the temporary file name.
> 
> One suggestion: rather than always using nano (which not everyone is
> familiar with), try reading the $EDITOR environment variable to
> determine what editor to use.  Concatenating the value of
> getenv("EDITOR"), followed by a space, followed by the file name, is
> likely to give you a valid command you can pass to system().  Fall back
> to nano if getenv("EDITOR") returns a null pointer.
> 
> (For historical reasons, the convention is to use $VISUAL if it's set,
> otherwise $EDITOR if it's set, otherwise some default.  Originally
> $VISUAL typically referred to a full-screen editor like vi and $EDITOR
> to a line editor like ed, to be used when full-screen editing is not
> available.  That's unlikely to be relevant nowadays, and users typically
> either don't set $VISUAL or set it to the same thing as $EDITOR.)
> 
Just Tried it out. On my Mac, which is the whizzy machine I used for 
professional development, and now repurposed, because I was allowed to 
keep it, getenv(EDITOR) returns null, and VISUAL also returns null. So 
this system has been broken by some wicked person.

-- 
Check out Basic Algorithms and my other books:
https://www.lulu.com/spotlight/bgy1mm