Date: Mon, 11 Jul 2016 10:55:35 -0400 From: Lowell Gilbert <freebsd-questions-local@be-well.ilk.org> To: =?iso-8859-1?Q?Sol=E8ne?= <solene@perso.pw> Cc: freebsd-questions@freebsd.org Subject: Re: cp and mv behaviour on a busy binary file Message-ID: <44eg70fcm0.fsf@lowell-desk.lan> In-Reply-To: <b2d31f0ca12bb3902aa5204e87495138@mail.zplay.eu> (=?iso-8859-1?Q?=22Sol=E8ne=22's?= message of "Mon, 11 Jul 2016 16:41:44 %2B0200") References: <b2d31f0ca12bb3902aa5204e87495138@mail.zplay.eu>
next in thread | previous in thread | raw e-mail | index | archive | help
Sol=E8ne <solene@perso.pw> writes:
> I found a not coherent behaviour when overwriting a busy binary and I
> would like an explanation on this.
> When overwriting a busy binary file, without -f flag, cp won't copy
> the file over the executable while mv will ask if you really want to
> overwrite it.
> When using -f, they act the same, the file get overwrited.
>
> Example here :
>
> shell@example : cat test.c
> #include <unistd.h>
>
> int main() {
> sleep(1000);
> return 0;
> }
> shell@example : clang test.c
> shell@example : ./a.out & <- I start the executable
> [1] 83540
> shell@example : touch file
> shell@example : cp file a.out
> cp: a.out: Text file busy <- cp don't agree
> shell@example : mv file a.out
> override rwxr-xr-x solene/solene for a.out? (y/n [n]) y <--- mv asks
I believe this behaviour is specifically required by POSIX.
mv(1) must act according to rename(2) and
cp(1) must act according to open(2).
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44eg70fcm0.fsf>
