Re: how copy file on linux?

Liste des GroupesRevenir à cl c  
Sujet : Re: how copy file on linux?
De : lew.pitcher (at) *nospam* digitalfreehold.ca (Lew Pitcher)
Groupes : comp.lang.c
Date : 29. Jun 2024, 01:25:20
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v5ngp0$3ehss$2@dont-email.me>
References : 1 2 3
User-Agent : Pan/0.139 (Sexual Chocolate; GIT bf56508 git://git.gnome.org/pan2)
On Sat, 29 Jun 2024 00:04:00 +0100, Malcolm McLean wrote:

On 28/06/2024 19:15, Bonita Montero wrote:
int fromFile = open( from, O_RDONLY | O_NOATIME );
     if( !fromFile )
         return false;

open() returns -1 on failure, and some non-negative number
on success. That non-negative number /can be/ 0 and still
be a valid success value.

The above test /will not/ detect an open() failure, as !(-1) == 0
However, the above /will/ falsely call a valid open() that returns
fd 0 (slim chance unless you've previously closed stdin).


     invoke_on_destruct closeFrom( [&] { close( fromFile ); } );
 //    int toFile = open( to, O_CREAT );
 //    if( !toFile )
 //        return false;
     invoke_on_destruct closeTo( [&] { close( toFile ); } );
//     invoke_on_destruct delTo( [&] { unlink( to ); } );
     for( int64_t remaining = attrFrom.st_size; remaining > 0; remaining
-= 0x100000 )
     {
         size_t n = (size_t)(remaining >= 0x100000 ? 0x100000 : remaining);
         buf.resize( n );
         if( read( fromFile, buf.data(), n ) )
         {
             // this branch is taken
             cout << strerror( errno ) << endl;
             return false;
         }
 
So it claims the file opens, then won't read it?
 
Check the call. Is 0 the success return?
 
Then I must admit I'm stumped. "to" doesn't alias "from" I suppose?
 
I'd also wonder if somehow the C++ compiler has invoked the on destruct
code, and closed the file.




--
Lew Pitcher
"In Skills We Trust"

Date Sujet#  Auteur
26 Jun 24 * how copy file on linux?10Thiago Adams
26 Jun 24 +- Re: how copy file on linux?1Janis Papanagnou
27 Jun 24 +* Re: how copy file on linux?2Keith Thompson
27 Jun 24 i`- Re: how copy file on linux?1Lew Pitcher
27 Jun 24 +* Re: how copy file on linux?2Lawrence D'Oliveiro
28 Jun 24 i`- Re: how copy file on linux?1Bonita Montero
28 Jun 24 `* Re: how copy file on linux?4Bonita Montero
29 Jun 24  `* Re: how copy file on linux?3Malcolm McLean
29 Jun 24   `* Re: how copy file on linux?2Lew Pitcher
29 Jun 24    `- Re: how copy file on linux?1Lew Pitcher

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal