fopen 打开文件
文件读写 fgetc fputc fgets fputs fread fwrite getline
fclose 关闭文件
char *strerror(int errnum)
根据errnum(错误码)打印错误信息
void perror(const char *s)
打印上一个函数运行结果,如果失败=错误信息 成功=success
int fseek(FILE *stream, long offset, int whence)
操作文件位置指针
stream:文件
offset:偏移 + -
whence:SEEK_SET(文件开始) SEEK_CUR(文件当前位置) SEEK_END(文件末尾)
int fseeko(FILE *stream, off_t offset, int whence)同fseek
ssize_t getline(char **lineptr, size_t *n, FILE *stream)
int feof(FILE *stream)
打开文件/设备文件
open
int open(const char *pathname, int flags, mode_t mode)
int open(const char *pathname, int flags)
创建/打开文件
pathname:文件名称及路径
flags:O_RDONLY O_WRONLY O_RDWR O_CREAT(如果文件不存在创建文件)
O_EXCL() O_NONBLOCK O_TRUNC
mode:权限 在文件被创建时有效
返回值:成功=int文件描述符 失败=-1
文件操作
read write
ssize_t read(int fd, void *buf, size_t count)
从文件读取数据
fd:文件描述符
buf:存放数据缓冲区
count:缓冲区大小
返回值:成功=读取字节数(>0) 0=读取文件结尾 -1=失败
ssize_t write(int fd, const void *buf, size_t count)
往文件写入数据
关闭文件
close
off_t lseek(int fd, off_t offset, int whence)
0=标准输入 1=标准输出 2=标准错误
文件描述符分配原则:当前系统最小并空闲文件描述符 实现文件输入/输出重定向
int dup2(int oldfd, int newfd)
fcntl
int stat(const char *path, struct stat *buf);
int fstat(int fd, struct stat *buf);
int lstat(const char *path, struct stat *buf);
通过文件描述符/文件名称获取文件/链接文件的属性
struct stat {
dev_t st_dev; /* ID of device containing file */
ino_t st_ino; /* inode number */
mode_t st_mode; /*protection */
nlink_t st_nlink; /*number of hard links */
uid_t st_uid; /* user ID of owner */
gid_t st_gid; /* group ID of owner */
dev_t st_rdev; /* device ID (if special file) */
off_t st_size;/* total size,in bytes */
blksize_t st_blksize;/* blocksize for file system I/O */
blkcnt_t st_blocks;/* number of 512B blocks allocated*/
time_t st_atime;/* time of last access */
time_t st_mtime;/* time of last modification */
time_t st_ctime;/* time of last status change0 */
};
mode_t umask(mode_t mask)
设置调用进程的权限屏蔽字
返回值:This system call always succeeds and the previous value of the mask is returned
int link(const char *oldpath, const char *newpath)
文件备份 只是对于文件的硬链接数加一 不能对于目录创建硬链接
int symlink(const char *oldpath, const char *newpath)
创建一个链接文件 (window:快捷方式)
oldpath:绝对路径
int unlink(const char *pathname)
删除文件
返回值:成功=0 失败=-1
目录操作:
int mkdir(const char *pathname, mode_t mode)
创建目录
pathname:名称
mode:权限
返回值:成功=0 失败=-1
int rmdir(const char *pathname)
删除空目录
DIR *opendir(const char *name)
打开目录
成功=地址 失败=NULL
struct dirent *readdir(DIR *dirp)
读取目录内容、
int closedir(DIR *dirp)
int chdir(const char *path)
改变调用进程的工作目录
/etc/shadow
struct spwd *getspnam(const char *name)
通过用户名获取/etc/shadow文件用户信息
void setspent(void);
打开/etc/shadow
struct spwd *getspent(void);
读取/etc/shadow文件内容
void endspent(void);
关闭/etc/shadow
/etc/passwd
struct passwd *getpwnam(const char *name)
void setpwent(void);
打开/etc/passwd
struct passwd *getpwent(void);
读取/etc/passwd
void endpwent(void);
关闭/etc/passwd
char *crypt(const char *key, const char *salt)
密码名码进行加密
char *getpass( const char *prompt)
隐形接收密码
time_t time(time_t *t)
struct tm *gmtime(const time_t *timep);
秒数转换为显示时间
char *asctime(const struct tm *tm)
将结构体时间转化为字符串时间
struct tm *localtime(const time_t *timep);
转换本地时间
int getopt(int argc, char * const argv[],const char *optstring)
optind:调用getopt() argv下一个索引
阅读(1262) | 评论(0) | 转发(0) |