C语言 access() fseek() \r \b
access 函数
用 法:
int access(const char *filenpath, int mode);
//或者
int _access( const char *path, int mode );
参数说明:
- filenpath
文件或文件夹的路径,当前目录直接使用文件或文件夹名
备注:当该参数为文件的时候,access函数能使用mode参数所有的值,当该参数为文件夹的时候,access函数值能判断文件夹是否存在。在WIN NT 中,所有的文件夹都有读和写权限 - mode
要判断的模式
在头文件unistd.h中的预定义如下:
#define R_OK 4 /* Test for read permission. */
#define W_OK 2 /* Test for write permission. */
#define X_OK 1 /* Test for execute permission. */
#define F_OK 0 /* Test for existence. */
具体含义如下:
- R_OK 只判断是否有读权限
- W_OK 只判断是否有写权限
- X_OK 判断是否有执行权限
- F_OK 只判断是否存在
fseek 函数
头文件:#include<stdio.h>
功能:把与fp有关的文件位置指针放到一个指定位置。
格式: int fseek(FILE *stream, long offset, int fromwhere);
范例一:
```c
fseek(fp, 0L, SEEK_END);
```
解释:文件指针定位到文件末尾,偏移0个字节
范例二:
fseek(fp,50L,0);或fseek(fp,50L,SEEK_SET);
解释:
其作用是将位置指针移到离文件头50个字节处。
起始点 对应的数字 代表的文件位置
- SEEK_SET 0 文件开头
- SEEK_CUR 1 文件当前位置
- SEEK_END 2 文件末尾
说明:
offset:偏移量
fromwhere:起始位置
其中,“位移量”是long型数据,它表示位置指针相对于“起始点”移动的字节数。
如果位移量是一个正数,表示从“起始点”开始往文件尾方向移动;
如果位移量是一个负数,则表示从“起始点”开始往文件头方向移动。
“起始点”不能任意设定,它只能是在stdio.h中定义的三个符号常量之一:
注意:
fseek函数的文件指针,应该为已经打开的文件。如果没有打开的文件,那么将会出现错误。
'\b '退格字符的功能及使用方法
'\b '和 上面所说的 '\r '一样,都是C语言提供的转移字符。不同于 '\r '的是, '\b '的功能是将当前位置后退一个字符,它的字符值为退格。使用的时候同样需要用printf函数进行输出。
使用方法及误区
1. 对单个字符进行退格操作
printf("abc\bv"); //此处的输出结果是abv,后面的'v'就是用来替换'c'的字符
printf("abc\b"); //此处的输出结果是abc,可以看出虽然用了'\b'退格,但是并没有提供相应的用来替换最后一个字符'c'的字符
printf("abc\b "); //此处的输出结果是ab,因为在'\b'后面,跟了一个空格' '来替换了字符'c'
2. 对多个字符进行退格操作
printf("phrase\b\b\b\b.new"); //此处的输出结果是ph.new,后面的字符串".new"是用来替换"rase"的
printf("phrase\b\b\b\b newString"); //此处输出的结果是ph newString,中间用了两个空格来代替字符串"ra",紧接着用了两个字符"n
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步