首页 > 数据库技术 > 详细

lseek、stat、access、chmod、strtol

时间:2019-03-06 13:13:05      阅读:171      评论:0      收藏:0      [点我收藏+]

lseek,可实现计算文件长度,以及文件扩展。

    int ret = lseek(fd, 0, SEEK_END);    //文件长度
    printf("file lendth = %d\n", ret);

 

    int ret = lseek(fd, 2000, SEEK_END);        //文件拓展2000个byte 在文件末尾偏移2000
    printf("return value %d\n", ret);
    
    //实现文件拓展,需要在最后做一次写操作
    write(fd, "a", 1);
  //最后有原长度加2001大小 a在最后其余为空洞

stat,显示文件的基础信息,可作为命令使用(stat english    显示english文件的信息)

  头文件:<sys/types.h> <sys/stat.h> <unistd.h>

  函数有:int stat(const chat *path, struct stat *buf);  //buf为传出参数  由于函数向外输出相应信息

      int fstat(int fd, struct stat *buf);

      int lstat(const char *path, struct stat *buf);

  stat与lstat的区别是,stat遇到软连接时追踪原文件,显示原文件的大小。lstat显示软连接的大小。

struct stat{
    dev_t    st_dev;//文件的设备标号
    ino_t    st_ino;//节点
    mode_t    st_mode;//文件类型和储存权限
    nlink_t    st_nlink;//硬链接数目
    uid_t    st_uid;//用户ID
    gid_t    st_gid;//组ID
    .....
}

 

access,测试文件是否拥有某种权限,读、写、执行、是否存在

  头文件:<unistd.h>

  函数:int access(const char  *pathname, int mode);

  mode, R_OK是否读、W_OK是否写、X_OK是否可执行、F_OK是否存在

  存在为0,失败为-1

 

chmod,修改文件权限

 

strtol,将字符串转换为相应进制的数

  <stdlib.h>

  long int strtol(const char *nptr, char **endptr, int base);

  nptr为字符串,endptr通常为空,base为想要转成的进制

 

  

lseek、stat、access、chmod、strtol

原文:https://www.cnblogs.com/lr1402585172/p/10482200.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!