[m-rev.] for review: attempt to preserve file mode when copying
Zoltan Somogyi
zoltan.somogyi at runbox.com
Sun Jan 7 16:17:59 AEDT 2024
On 2024-01-07 14:27 +11:00 AEDT, "Julien Fischer" <jfischer at opturion.com> wrote:
> %-----------------------------------------------------------------------------%
> +%
> +% Getting and setting file modes.
> +%
On my iMac, "man 2 stat" says this about file modes:
#define S_IFMT 0170000 /* type of file */
#define S_IFIFO 0010000 /* named pipe (fifo) */
#define S_IFCHR 0020000 /* character special */
#define S_IFDIR 0040000 /* directory */
#define S_IFBLK 0060000 /* block special */
#define S_IFREG 0100000 /* regular */
#define S_IFLNK 0120000 /* symbolic link */
#define S_IFSOCK 0140000 /* socket */
#define S_IFWHT 0160000 /* whiteout */
#define S_ISUID 0004000 /* set user id on execution */
#define S_ISGID 0002000 /* set group id on execution */
#define S_ISVTX 0001000 /* save swapped text even after use */
#define S_IRUSR 0000400 /* read permission, owner */
#define S_IWUSR 0000200 /* write permission, owner */
#define S_IXUSR 0000100 /* execute/search permission, owner */
Preserving the S_IFMT part of this by getting it on one file and
setting it on another would be nonsensical if the set operation
would modify this part of the mode. This is why the chmod syscall
does not even attempt to set these bits.
I would therefore prefer to rename file_name to file_permission
to reflect the semantics of what is left, in all parts of this diff.
The rest of the diff is fine.
Zoltan.
More information about the reviews
mailing list