自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HotIce0

0618

  • 博客(26)
  • 收藏
  • 关注

原创 Linux fopen/freopen/fdopen 函数

文章目录一、函数声明二、实例2.1 fopen2.2 fopen运行结果2.3 fdopen2.4 运行结果2.5 fclose会关闭文件句柄?2.6 运行结果一、函数声明#include <stdio.h>FILE *fopen(const char *pathname, const char *mode);// 从文件描述符创建并关联一个FILE.FILE *fdopen(int fd, const char *mode);// freopen,重新打开文件,并清除原来的定向(

2020-08-09 22:38:06 839

原创 Linux fflush 函数

一、函数声明#include <stdio.h>int fflush(FILE *stream);冲洗该缓冲区,即进行同步二、实例#include <stdio.h>#include <stdlib.h>#include <unistd.h>int main(int argc, char **args){ printf("hotice0"); sleep(3); printf("hotice0");

2020-08-09 22:13:44 659

原创 Linux setbuf/setvbuf 函数

一、函数声明#include <stdio.h>void setbuf(FILE *stream, char *buf);void setbuffer(FILE *stream, char *buf, size_t size);void setlinebuf(FILE *stream);int setvbuf(FILE *stream, char *buf, int mode, size_t size);// mode 可选值:_IOFBF 全缓冲, _IOLBF 行缓冲, _IO

2020-08-09 22:06:02 1469

原创 Linux fwide 函数 TODO

一、函数定义// fwide - set and determine the orientation of a FILE stream#include <wchar.h>int fwide(FILE *stream, int mode);二、实例获取文件初始的文件流方向#include <stdio.h>#include <stdlib.h>#include <wchar.h>#include <fcntl.h>#incl

2020-08-09 18:23:26 538 1

原创 Linux major/minor 函数 以及 st_dev和st_rdev区别

一、函数声明#include <sys/sysmacros.h>dev_t makedev(unsigned int maj, unsigned int min);unsigned int major(dev_t dev);unsigned int minor(dev_t dev);A device ID consists of two parts: a major ID, identifying the class of the device, and a minor ID,

2020-08-09 17:15:01 4234

原创 Linux chdir/fchdir/getcwd函数

文章目录一、函数声明二、实例2.1 运行结果一、函数声明// 获取当前的工作目录#include <unistd.h>char *getcwd(char *buf, size_t size);char *getwd(char *buf);char *get_current_dir_name(void);// 设置当前工作目录#include <unistd.h>int chdir(const char *path);int fchdir(int fd);二、

2020-08-09 16:16:35 354

原创 Linux opendir/opendirat/readdir/rewinddir/closedir 函数

文章目录一、函数声明二、实例2.1 运行结果一、函数声明//opendir#include <sys/types.h>#include <dirent.h>DIR *opendir(const char *name); // 打开文件夹。DIR *fdopendir(int fd);//readdir#include <dirent.h>struct dirent *readdir(DIR *dirp); //读取文件夹内文件信息,并且移动到文件夹内的下

2020-08-09 15:54:13 265

原创 Linux mkdir/mkdirat/rmdir 函数

文章目录一、函数声明二、实例2.1 运行结果一、函数声明#include <sys/stat.h>#include <sys/types.h>int mkdir(const char *pathname, mode_t mode);#include <fcntl.h> /* Definition of AT_* constants */#include <sys/stat.h>int mkdirat(int dirfd, c

2020-08-09 15:19:53 592

原创 Linux utimensat/futimens/utime/utimes等等 函数(修改文件时间)

一、函数声明// utimensat, futimens - change file timestamps with nanosecond precision(即都支持纳秒级)#include <fcntl.h> /* Definition of AT_* constants */#include <sys/stat.h>int utimensat(int dirfd, const char *pathname, const struct time

2020-08-09 00:42:14 1104

原创 Linux change time和modify time的区别

一、声明struct stat {.../* Since Linux 2.6, the kernel supports nanosecond precision for the following timestamp fields. For the details before Linux 2.6, see NOTES. */struct timespec st_atim; /* Time of last access */

2020-08-08 23:50:41 1175

原创 Linux symlink/symlinkat/readlink/readlinkat 函数

文章目录一、函数声明二、实例2.1 运行结果一、函数声明// symlink#include <unistd.h>int symlink(const char *target, const char *linkpath);#include <fcntl.h> /* Definition of AT_* constants */#include <unistd.h>int symlinkat(const char *target, i

2020-08-08 23:41:10 744

原创 Linux 各文件操作函数是否跟随符号链接表

参考自:Unix环境高级编程

2020-08-08 19:22:26 226

原创 Linux rename/renameat 函数

文章目录一、函数定义1.1 函数的简单说明二、实例2.1 文件重命名2.2 (文件重命名)运行结果2.3 文件移动并重命名(验证)2.4 (文件移动并重命名)运行结果一、函数定义#include <stdio.h>int rename(const char *oldpath, const char *newpath);#include <fcntl.h> /* Definition of AT_* constants */#include <s

2020-08-08 19:07:58 1394

原创 Linux unlink/unlinkat/remove 函数

一、函数声明#include <unistd.h>int unlink(const char *pathname);#include <fcntl.h> /* Definition of AT_* constants */#include <unistd.h>int unlinkat(int dirfd, const char *pathname, int flags);二、实例2.1 基本使用(删除文件,与目录)2.1.1 u

2020-08-08 15:15:40 2935

原创 Linux link/linkat 函数

文章目录一、函数定义二、实例2.1 运行结果一、函数定义#include <unistd.h>int link(const char *oldpath, const char *newpath);#include <fcntl.h> /* Definition of AT_* constants */#include <unistd.h>int linkat(int olddirfd, const char *oldpath,

2020-08-07 00:16:11 1544

原创 Linux 限制shell脚本并发执行(通过flock对文件加锁)

一、flock声明Usage: flock [options] <file>|<directory> <command> [<argument>...] flock [options] <file>|<directory> -c <command> flock [options] <file descriptor number>Manage file locks from shell scripts.

2020-08-06 23:09:58 2448

原创 Linux truncate/ftruncate 函数

一、函数声明#include <unistd.h>#include <sys/types.h>int truncate(const char *path, off_t length);int ftruncate(int fd, off_t length);功能:直接截短文件的大小,将文件的长度缩小为length指定的长度。二、实例#define __USE_XOPEN_EXTENDED#define __USE_FILE_OFFSET64#include

2020-08-05 21:11:55 600

原创 Linux S_ISVTX 黏着位的作用

一、声明#if defined __USE_MISC || defined __USE_XOPEN/* Save swapped text after use (sticky bit). This is pretty well obsolete(已经过时了). */# define S_ISVTX __S_ISVTX#endifS_ISVTX是文件(文件夹)权限位(mode_t)中的一位。也称保存正文位。正文,即text段,代码段。对于可执行文件:如果,可执行文件设置了该位,则程序运行完,

2020-08-04 08:18:52 940

原创 Linux chmod/fchmod/fchmodat 函数

一、函数声明#include <sys/stat.h>int chmod(const char *pathname, mode_t mode);int fchmod(int fd, mode_t mode);#include <fcntl.h> /* Definition of AT_* constants */#include <sys/stat.h>int fchmodat(int dirfd, const char *pathn

2020-08-04 07:19:55 575

原创 Linux umask 函数

一、函数声明#include <sys/types.h>#include <sys/stat.h>mode_t umask(mode_t mask);umask() sets the calling process’s file mode creation mask (umask) to mask & 0777The umask is used by open(2), mkdir(2), and other system calls that crea

2020-08-04 07:01:25 412

原创 Linux access/faccessat/eaccess 函数

文章目录一、函数声明二、实例2.1 前置准备2.2 未设置S_ISUID运行结果2.3 设置S_ISUID运行结果三、其他一、函数声明https://man7.org/linux/man-pages/man2/access.2.html中的定义#include <unistd.h>int access(const char *pathname, int mode);#include <fcntl.h> /* Definition of AT_*

2020-08-03 22:25:50 1260

原创 Linux 文件夹的读写执行权限 的理解

文章目录一、定义1.1 读1.2 执行1.3 写二、结论一、定义对于文件夹,读、写、执行 权限分别代表1.1 读对文件夹的读权限,实际上是能不能读取文件夹内的文件列表。(可以立即为,文件夹存的内容就是,内部有哪些文件)只是不能读取,内部文件列表,但是可以访问文件夹内的文件。1.2 执行对于文件夹的执行权限,实际上是能不能访问,文件夹内的某个文件。执行权限去掉了之后。文件夹内部任何文件无法访问。也无法cd到文件夹。但是可以读取到dir的文件列表。1.3 写对于文件夹的写权限,实

2020-08-02 20:18:44 6316

原创 Linux S_ISUID/ S_ISGID

一、声明#define S_ISUID __S_ISUID /* Set user ID on execution. */#define S_ISGID __S_ISGID /* Set group ID on execution. */二、作用举例子:passwd,原理是通过修改/etc/shadow文件从而实现用户账号密码的修改。而shadow文件只有root用户可以修改的。那普通用户为什么可以通过passwd修改字节的账号密码呢。其原理其实就是,passwd程序st_mode被设置了

2020-08-02 19:31:31 1273

原创 Linux stat获取文件类型

一、函数声明#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>int stat(const char *pathname, struct stat *statbuf);int fstat(int fd, struct stat *statbuf);int lstat(const char *pathname, struct stat *statbuf);#include <f

2020-08-02 18:42:20 496

原创 Linux ioctl 函数

一、函数声明#include <sys/ioctl.h>int ioctl(int fd, unsigned long request, ...);额外的操作,工具箱二、

2020-08-02 16:49:25 210

原创 Linux fcntl F_SETLKW实现超时返回

文章目录一、函数声明二、fcntl,F_SETLKW超时返回原理依据三、实现方式3.1 通过alarm函数最基础的实现3.1.1 运行结果(失败)3.1.2 查找原因3.1.3 重新封装后的_signal函数3.1.3 (运行结果)重新封装后的_signal函数3.1.4 优化后的fcntl超时返回3.1.5 (运行结果)优化后的fcntl超时返回以下所有代码都是ubuntu20.4系统下运行测试通过一、函数声明#include <unistd.h>#include <fcnt

2020-08-02 16:25:52 1563

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除