fcntl函数(查看/设置文件状态)
这个函数主要是供用户查看或是设置一个被打开的状态。它的使用格式如下:
status = fcntl (hand, option, mode ) ;
上述fcntl函数调用中,各参数定义如下:
l handle:已打开的文件句柄。
l option:一般可以是下列两种值:
n F_GETFL:表示读取文件状态值。
n F_SETFL:表示设置文件状态值。
(注意:F_GETFL和F_SETFL都被定义在fcntl.h)
l mode:如果optipn是F_GETFL,则这个参数值可以是任意值。如果是F_SETFL,则参数值可以是下列值:
n O_WRONLY:将文件设置成只写状态。
n O_RDWR: 将文件设置成读写状态。
n O_RDONLY:将文件设置成只读状态。
n status:函数会将调用结果赋给status,如运行失败,则status的值会被设成-1。
Code:
#include "lyl.h"
main(int argc,char *argv[])
{
int handle ;
int ret_code ;
int dummy ;
if ( argc != 2 )
{
printf("sorry input error!\n") ;
exit(1) ;
}
handle = open(argv[1],O_WRONLY) ;
ret_code = fcntl(handle,F_GETFL,dummy) ;
/* ret_code = fcntl(handle,F_SETFL,O_WRONLY) ;*/
/*print the file attribute打印文件属性*/
/*用位运算指令"&"测试返回的文件状态值*/
if ( ret_code & O_RDWR )
{
printf("The file[%s] is read and write\n",argv[1]) ;
}
else if ( ret_code & O_WRONLY )
{
printf("The file[%s] is write only \n",argv[1]) ;
}
else
{
printf("The file[%s] is read only\n",argv[1]) ;
}
exit(0) ;
}
程序执行结果:
$ls -l t1.txt
-rwxr-xr-x 1 test staff 0 Sep 15 15:14 t1.txt
$fcntl t1.txt
The file[t1.txt] is write only
没有评论:
发表评论