UNIX环境高级编程学习笔记之文件和目录

UNIX环境高级编程学习笔记之文件和目录

1.获取文件的信息

#include <sys/stat.h>

int stat(const char* pathname, struct stat* restrict buf);

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

int lstat(const char* pathname, struct stat* restrict buf); //三个函数的返回值:成功执行返回0,出错返回-1

2.按实际用户ID和实际组ID测试访问权限。

#include <unistd.h>

int access(const char* pathname,int mode); //成功执行返回0,出错返回-1

3.为进程设置文件模式创建屏蔽字。

#include <sys/stat.h>

mode_t umask(mode_t cmode); //返回以前文件模式创建的屏蔽字

4.更改现有文件的访问权限。

#include <sys/stat.h>

int chmod(const char* pathname, mode_t mode);

int fchmod(int filedes,mode_t mode); //两个函数返回值:成功执行返回0,出错返回-1

chmod()在指定文件上进行操作,fchmod()在打开的文件上进行操作。

5.更改文件的用户ID和组ID。

#include <unistd.h>

int chown(const char* pathname, uid_t owner, gid_t group);

int fchown(int filedes, uid_t ower, gid_t group);

int lchown(const char* pathname, uid_t ower, gid_t group); //三个函数的返回值:成功执行返回0,出错返回-1

对于符号链接,lchown()更改符号链接本身的用户ID和组ID,而不是符号链接所指向的文件。

6.文件截断。

#include <unistd.h>

int truncate(const char* pathname, off_t length);

int ftruncate(int filedes, off_t length); //两个函数的返回值:成功执行返回0,香港虚拟主机,出错返回-1

7.创建一个指向现有文件的链接。

#include <unistd.h>

int link(const char* existingpath, const char* newpath); //成功执行返回0,出错返回-1

8.删除一个现有的目录项。

#include <unistd.h>

int unlink(const char* pathname); //成功执行返回0,出错返回-1

9.解除对一个文件或目录的链接。

#include <stdio.h>

int remove(const char* pathname); //成功执行返回0,出错返回-1

10.更改文件或目录名称。

#include <stdio.h>

int rename(const char* oldname, const char* newname); //成功执行返回0,出错返回-1

11.创建一个符号链接。

#include <unistd.h>

int symlink(const char* actualpath, const char* sympath); //成功执行返回0,出错返回-1

12.打开符号链接本身。

#include <unistd.h>

ssize_t readlink(const char* restrict pathname, char* restrict buf, size_t bufsize); //成功执行返回读取的字节数,出错返回-1

13.更改文件的访问和修改时间。

#include <utime.h>

int utime(const char* pathname, const struct utimbuf* times); //成功执行返回0,出错返回-1

struct utimbuf{

  time_t actime;

  time_t modtime;

}

14.创建目录。

#include <sys/stat.h>

int mkdir(const char* pathname, mode_t mode); //成功执行返回0,出错返回-1

15.删除一个空目录

#include <unistd.h>

int rmdir(const char* pathname); //成功执行返回0,出错返回-1

16.读目录

#include <dirent.h>

DIR* opendir(const char* pathname); //成功执行返回指针,香港服务器,出错返回NULL

struct dirent* readdir(DIR* dp); //成功执行返回指针,若在目录结尾或者出错返回NULL

void rewinddir(DIR* dp);

int closedir(DIR* dp); //成功执行返回0,出错返回-1

long telldir(DIR* dp); //返回与dp关联的目录中的当前位置

void seekdir(DIR* dp);

struct dirent{

  ino_t d_ino; //i-node number

  char d_name[NAME_MAX+1]; //null-terminated filename

}

17.更改进程当前工作目录

#include <unistd.h>

int chdir(const char* pathname);

int fchdir(int filedes); //成功执行返回0,出错返回-1

18.获取进程当前工作目录

#include <unistd.h>

char* getcwd(char* buf, size_t size); //成功执行返回buf,网站空间,出错返回BULL

posted on

世上最累人的事,莫过於虚伪的过日子

UNIX环境高级编程学习笔记之文件和目录

相关文章:

你感兴趣的文章:

标签云: