《UNIX环境高级编程》——读书笔记3, 4

win11正式版如何退回win10 windows11正式版退回win10的步骤方法 有网友安装了win11正式版系统使用后,发现用起来不流畅,经常会出现些bug,因此想将win11正式版退回win10系统使用。那么win11正式版如何退回win10呢?下面就教下大家具体的操作方法。更多windows11系统教程,可以参考小白一键网。 一般不超10天的话可以直接设置的更新退回win10,不过超过10天的话我们需要重装win10系统即可。下面是简单的重装win10系统步骤: 1、我们先网上查找“小白系统官网”,然后找到并下载小白三步装机版工具打开,选择需要安装的win10系统点击立即重装。 阅读详情

头文件          包含

<unistd.h>  STDIN_FILENO, STDOUT_FILENO

<stdio.h>    printf, perror

<errno.h>

<string.h>   strerror(int errnum)


getc,putc, fgets  


 关键字restrict: 用于告诉编译器,哪些指针引用是可以优化,其方法是指明指向的对象,在函数中只通过该指针进行访问。


3. 文件I/O:

#include <fcntl.h> 

int open( const char *pathname, int oflag, ... /* mode_t mode */  );

oflag: O_RDONLY, O_WRONLY, ORDWR (0, 1, 2)

         其他:O_APPEND, O_CREAT, O_EXCL, O_TRUNC, O_NOCTTY, O_NONBLOCK

                   O_DSYNC, O_RSYNC, O_SYNC


#include <fcntl.h> 

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

  等效:open( pathname, O_WRONLY | O_CREAT | O_TRUNC, mode );


#include <unistd.h>

int close( int filedes );


#include <unistd.h>

off_t lseek( int filedes, off_t offset, int whence );

whence: SEEK_SET, SEEK_CUR, SEEK_END


当前偏移量:

off_t currpos;

currpos = lseek( fd, 0, SEEK_CUR );


#include <unistd.h>

ssize_t read( int filedes, void *buf, size_t nbytes );


#include <unistd.h>

ssize_t write( int filedes, void *buf, size_t nbytes );


3.10 文件共享:

进程表——文件描述符表——V节点表

进程表:fd标志,文件指针

文件表:文件状态标志,当前文件偏移量,V节点指针

V节点表:V节点信息,i节点信息,当前文件长度。i节点:文件所有者,文件长度,文件所在的设备,指向文件实际数据块所在位置的指针等。


3.11 原子定位搜索:

#include <unistd.h>

ssize_t pread( int filedes, void * buf, size_t nbytes, off_t offset );

ssize_t pwrite( int filedes, const void * buf, size_t nbytes, off_t offset );


3.12

#include <unistd.h>

int dup( int filedes ); 等效:fcntl( filedes, F_DUPFD, 0 );

int dup2( int filedes, int filedes2 ); 等效:close( filedes2 ); fcntl( filedes, F_DUPFD,filedes2 );


3.13

#include <unistd.h>

int fsync( int filedes ); 文件( 数据及属性 )

int fdatasync( int filedes ); 文件数据


void sync( void ); 系统周期调用


3.14

#include <fcntl.h>

int fcntl( int filedes, int cmd, ... /* int arg */ );

五种功能:

1) F_DUPFD; 

2) F_GETFD or F_SETFD;

3) 文件状态标志 F_GETFL or F_SETFL;

4)异步I/O所有权 F_GETOWN or F_SETOWN;

5)记录锁 F_GETLK or F_SETLK or F_SETLKW


3.15

#include <unistd.h>

#include <sys/ioctl.h>

#include <stropts.h>

int ioctl( int filedes, int request, ... );


4 文件和目录

4.2 

#inlcude <sys/stat.h>

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

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

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

 

struct stat { 
        mode_t     st_mode;  // 文件对应的模式,文件,目录等
        ino_t      st_ino;         // inode节点号
        dev_t      st_dev;        // 设备号码
        dev_t      st_rdev;       // 特殊设备号码
        nlink_t    st_nlink;     // 文件的连接数
        uid_t      st_uid;         // 文件所有者
        gid_t      st_gid;         // 文件所有者对应的组
        off_t      st_size;         // 普通文件,对应的文件字节数
        time_t     st_atime;    // 文件最后被访问的时间
        time_t     st_mtime;   // 文件内容最后被修改的时间
        time_t     st_ctime;     // 文件状态改变时间
        blksize_t st_blksize;   // 文件内容对应的块大小
        blkcnt_t   st_blocks;   // 创建内容对应的块数量
};

4.3 文件类型

1) S_ISREG() regular file

2) S_ISDIR() directory file

3) S_ISCHR() block special file 

4) S_ISBLK() character special file  系统所有设备要么是3), 要么是4)

5) S_ISFIFO() FIFO   named pipe

6) S_ISLINK() socket

7) S_ISSOCK() symbolic link

表4-2

<sys/stat.h>

1) S_TYPEISMQ 消息队列

2) S_TYPEISSEM 信号量

3) S_TYPEISSHM 共享存储对象

 

4.4 设置用户ID和设置组ID

4.5 文件访问权限

表4-5

<sys/stat.h>

S_IRUSR, S_IWUSR, S_IXUSR

S_IRGRP, S_IWGRP, S_IXGRP

S_IROTH, S_IWOTH, S_IXOTH

 

4.6 新文件和目录的所有权

4.7 access

#include <unistd.h>

int access( const char *pathname, int mode );

表4-6: R_OK, W_OK, X_OK, F_0K(测试文件是否存在)

 

4.8 umask

#include <sys/stat.h>

mode_t umask( mode_t cmask ); 设置文件模式创建屏蔽字,并返回以前的值。

 

4.9 chmod和fchmod

#include <sys/stat.h>

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

int fchmod( int filedes, mode_t mode );

 

-rw-rwSrw-

ls命令将组执行权限表示为S,它表示设置组ID位已设置,同时,组执行位则未设置。

 

4.10 粘住位( sticky bit ): S_ISVTX

初始:若设置了,那么该程序第一次被执行并结束时,其程序正文部分的一个副本仍被保存在交换区。现已改变。

 

4.11 chown、fchown和lchown

#include <unistd.h>

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

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

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

 

4.12 文件长度

4.13 文件截短

#include <unistd.h>

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

int ftruncate( int filedes, off_t length );

 

4.14 文件系统

硬链接 st_nlink

符号链接( symbolic link ) 文件类型为S_IFLNK


i节点时固定长度的记录项,它包含有关文件的大部分信息:

文件类型、文件访问权限位、文件长度和指向该文件所占用的数据块的指针。

stat结构中多数信息取自i节点。只有两项放在目录项中:文件名和i节点编号。i节点编号的数据类型是ino_t.

 

4.15 link、unlink、remove和rename

#include <unistd.h>

int link( const char * existingpath,  const char * newpath );

int unlink( const char * pathname );

int remove( cosnt char * pathname );

int rename( cosnt char *oldname, const char *newname );

 

4.16 符号链接

4.17 symlink和readlink

#include <unistd.h>

int symlink( const char * actualpath, const char * sympath ); 创建一个符号链接

ssize_t readlink( const char* restrict pathname, char *restrict buf, size_t bufsize );

 

4.18 文件的时间

表4-10

st_atime 最后访问时间

st_mtime 最后修改时间

st_ctime i节点的最后更改时间

 

4.19 utime

#include<utime.h>

int utime( const char * pathname, const struct utimbuf *times  );

struct utimbuf {

    time_t actime;

    time_t modtime;

};

 

4.20 mkdir和rmdir

#include <sys/stat.h>

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

int rmdir( const char *pathname );

 

4.21 读目录

#include <dirent.h>

DIR *opendir( const char * pathname );

struct dirent * readdir( DIR *dp );

void rewinddir( DIR *dp );

int closedir( DIR *dp );

long telldir( DIR *dp );

void seekdir( DIR*dp, long loc );

struct dirent{

    ino_t d_ino;

    char d_name[NAME_MAX +1];

};

 

4.22 chdir、fchdir和getcwd

#include <unistd.h>

int chdir( const char* pathname );

int fchdir( int filedes );

char *getcwd( char *buf, size_t size );

 

4.23 设备特殊文件

4.24 文件访问权限位小结

Win11 23H2退回Win10系统全攻略 退回Win10系统并不是一件复杂的事情,只要按照上述方法操作即可。不过,在退回之前,请务必备份好所有重要数据,以防万一。同时,也要根据自己的实际情况选择最适合的退回方法。如果你对系统操作不太熟悉,建议寻求专业人士的帮助以确保操作的安全性和准确性。希望本文能对你有所帮助! 阅读详情

相关推荐

Win11超过10天怎么退回Win10 Win11超过10天可以退回Win10吗

根据联想和微软的官方说法,如果想要从Win11恢复到Win10,那么系统预留了10天的时间,可以让你从容降级。已经正式发布了,喜欢的朋友想必都已经升级上了,不过毕竟是新系统,还存在着不少Bug,如果你在使用的过程中发现问题,或者不喜欢Win11的体验的话,那么可以退回到Win10的,但是如果你超过了10天的时间,那么能不能再退回Win10呢?这个机制是这样子的。总的来说,Win11可以回退到Win10,但想要无损回退的话,需要在10天内通过系统内置的恢复选项进行,这点大家务必注意到。

xhp618的博客 5790

4.3 文件类型判断宏与文件类型常量

文件类型信息包含在stat结构的st_mode成员中,大多数系统都在文件中定义了对应的类型字和类型判断宏。 一、判断文件类型方法有两种: (1)用文件类型判断宏:例如S_ISREG(buf.st_mode) (2)先用文件类型屏蔽字(S_IFMT)与buf.st_mode进行“与”运算,然后再与对应的类型字相比较。例如:(buf.st_mode & S_IFMT) == S_IFRE

zhoulaowu的专栏 5668

UNIX环境高级编程 学习笔记

学习LINUX环境编程的见证,一笔一画,脉络清楚,结构清晰,自己再看一目了然,传上来与众分享

Linux 文件属性及特殊权限详解

本篇博客不仅会介绍一些常用的属性,还会引申介绍一些容易被忽略的特殊权限。

个人笔记 7195

APUE学习笔记:第四章 文件和目录

4.1 引言 本章将描述文件的特征和文件的性质 4.2 stat、fstat和lstat函数 #include<sys/stat.h> int stat(const char *restrict pathname,struct stat *restrict buf); int fstat(int filedes,struct stat *buf) in...

weixin_30840253的博客 246

APUE_第4章 文件和目录

4.1 文件和目录 stat数据结构中包含有文件的基本信息, 4.2 stat, fstat, lstat函数 //restrict关键字表明,只能通过这一个指针访问这一个对象,这样有利于编译器优化,不会产生内存别名; int stat(const char *restrict pathname, struct stat *restrict buf); int fstat(int fd, struct stat *buf); int lstat(const char *restrict pathname,

qq_25626505的博客 360

UNIX环境高级编程 文件类型

      相关函数列表 //stat获取文件的状态信息 //fstat 根据fd返回相关信息 //lstat 返回该符号链接有关信息 //fstatat为一个相当于当前打开目录的路径名返回文件统计信息 #include &lt;sys/stat.h&gt; int stat(const char *restrict pathname, struct stat *restri...

... 247

Win11 22H2怎么退回之前版本?Win11回滚Win10系统教程(三种方法)

最近,新的Windows11 22H2正式版已经推送了,有不少更新到新系统的朋友出现了问题,想要退回之前的系统版本,本文就针对Win11 22H2怎么退回之前版本的问题,带来了三种Win11回滚Win10系统的方法有一些用户升级到微软最新发布的Win11 22H2正式版以后后悔了,想要从 Windows 11 版本 22H2 回滚到之前的版本。只要在十天之内,你都可以退回到之前你觉得比较稳定的版本。怎么操作?有三种方法可以实现。

ai520wangzha的博客 2万+

win11强行退回win10

前言: 很多人升级到win11后适用了一段时间 ,最后发现win11的bug和体验不友好,决定回到Win10,然而官方在设置中的的恢复选项只能在升级win11的10天里使用。 然而不用重装系统,也能回到win10! --------------------------------------------------------------------------------------------------------------------- 第一步:浏览器进入微软官网 必应或..

CodeShark的博客 1万+

win11怎么回去win10?四种方法教你!

win11系统与旧系统相比,在这些方面进行了重大更新:新的开始菜单、通知中心、重新设计的任务栏以及更加美观的圆角窗口,确实给用户带来了不一样的体验。然而,win11有时漏洞频出、BUG不断和兼容性不佳的问题,让很多升级win11尝鲜的用户迫切地想要将win11退回win10。下面就来看看四种win11退回win10的方法吧。

zym0218的博客 8万+

Win11怎么退回Win10系统

当我们的电脑升级Win11后,会有10天的适应期,在这期限内,可以随时进入恢复选项退回Win10。今天我将为大家分享Win11退回Win10的方法,有需要的小伙伴们不要错过了哦,希望对你有所帮助。

xitongzhijia_abc的博客 1万+

升级Win11后不喜欢怎么退回Win10系统?

很多朋友通过升级Win11系统体验了一段时间,感觉还是不喜欢,想要退回原来的Win10系统,还是想用回熟悉的系统,那么这种情况应该怎么办,下面来给朋友们介绍Win11退回Win10的操作方法。很多朋友通过升级Win11系统体验了一段时间,感觉还是不喜欢,想要退回原来的Win10系统,还是想用回熟悉的系统,那么这种情况应该怎么办,下面来给朋友们介绍Win11退回Win10的操作方法。从Win10升级为Win11以后,系统有10天的期限,让大家可以便捷地退回Win10。4、在更多选项下点击“高级选项”进入。..

qq_29508575的博客 1万+

新电脑预装的win11怎么退回win10,win11怎么退回win10

很多人升级win11系统后都用不习惯,win11是微软最新一代的操作系统,系统外观和功能界面大变样,有的用户对一些功能操作完全不了解,导致自己毫无使用体验感。无论是新电脑预装的win11系统,还是自己从win10升级到了win11,只要你对win11感到不满意,那么都可以通过上面的方法来退回win10使用。如果按照上面的步骤,你没有找到“回退到早期版本”的选项,或者此按钮呈灰色点击不了,这种情况就需要重装系统了。4、选择“以前版本的Windows”,点击“返回”。

2301_79263402的博客 4058

win11如何退回win10,win11卸载并退回win10图文教程

win11相比win10系统,有着更年轻化的UI设计、排列模式、功能操作,甚至可以匹配一些安卓应用,因为这些特点,很多用户都渴望升级win11体验。但是呢,从体验测试来看,也有一部分的用户非常不喜欢win11,因为这个新的操作的变化,一时间让人很不习惯,办公效率都拉低了。win11的好评和差评各占一半,有些人升级win11之后觉得并不好用,而且对功能以及界面完全不熟悉,导致自己毫无体验感,这时候呢自然就会想要退回win10版本了,那么我们可以按照上面的方法,简单退回win10使用。

2301_79263402的博客 2032

升级win11后怎么退回win10?保持原有win10系统不变

有用户将电脑系统升级到了windows11系统版本以后。觉得win11系统非常不好用,后悔升级。那么升级到win11还能退回win10吗?今天小编就针对用户不同的升级情况,给大家准备了相应的方法。升级到win11以后,想要退回原版本系统的用户们赶紧来看一下吧。

taokzu的专栏 2346

win11怎么装回win10系统

微软出来了win11预览版系统,很多网友给自己的电脑下载安装尝鲜,不过因为是测试版可能会有比较多bug,又只有英文,有些网友使用起来并不顺畅,因此想要将win11退回win10系统。那么win11怎么装回win10系统呢?今天小编就教下大家win11退回win10系统的方法。 方法一: 1、首先点击开始菜单,在其中找到“设置” 2、在设置面板中,我们可以找到“更新和安全” 3、在更新和安全中,找到点击左边栏的“恢复” 4、恢复的右侧我们就可以看到“回退到上版本的win10”了。 方法二:

qq_29508575的博客 3万+

【重装系统后续——win10升级win11】

按照微软官网操作从win10升级到win11(保留文件,可回退)

Ydiva的博客 3647
上一篇: 《UNIX环境高级编程》——读书笔记16
下一篇: 《UNIX环境高级编程》——读书笔记5, 6
hzraymond
博客等级 码龄17年 6粉丝 36原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值