1、umask(~0600)
文件或文件夹的权限在linux中是用八进制来表示的。
C,C++规定,一个数如果要指明它采用八进制,必须在它前面加上一个0,如:123是十进制,但0123则表示采用八进制。这就是八进制数在C、C++中的表达方法。
C,C++规定,16进制数必须以 0x开头。比如 0x1表示一个16进制数。而1则表示一个十进制。另外如:0xff,0xFF,0X102A,等等。其中的x也不区分大小写。
umask与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码,所以umask(~0600)的意思就是该文件具有600权限(u+rw u-x go-rwx)
注意:程序的写法要遵循以上原则:八进制前面加0,用反码填充参数,不要再计算该值。
2、stdin和STDIN_FILENO的区别
数据类型不一致:
stdin类型为 FILE*
STDIN_FILENO类型为 int
使用stdin的函数主要有:fread、fwrite、fclose等,基本上都以f开头
使用STDIN_FILENO的函数有:read、write、close等