标准设备
stdout是系统定义好的关联屏幕设备的指针
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("111");
fclose(stdout); //关闭标准输出指针后不能打印
printf("222"); //不会打印该内容
return 0;
}
获取系统函数调用的错误
perror(“dale”); //可以是任意字符串
stdout stdin stderr:标准输出,标准输入,标准错误指针均可以被关闭,关闭后不能使用其功能。
stdout 被关闭不能打印到屏幕
stdin 被关闭不能接收键盘输入
stderr 被关闭不能得到库函数的调用错误
文件的创建 写入 关闭
基本流程和windows的一样。
#include <stdio.h>
#include<string.h>
int main(int argc, char *argv[])
{
FILE* file=fopen("test.txt", "w");
if (!file)
{
printf("create file failed\n");
perror("fopen");
getchar();
}
char buffer[] = "hello linux";
fwrite(buffer,1,strlen(buffer),file);
fclose(file);
getchar();
return 0;
}
写文件
一个字符一个字符的写入
#include <stdio.h>
#include<string.h>
int main(int argc, char *argv[])
{
FILE* file=fopen("test.txt", "w");
if (!file)
{
printf("create file failed\n");
perror("dale");
getchar();
}
for (int i = 0; i < 20; i++)
{
fputc('a'+i, file); //写入 a b c d e f ..
}
fclose(file);
printf("执行完成\n");
getchar();
return 0;
}
fgetc读取文件
#include <stdio.h>
#include<string.h>
int main(int argc, char *argv[])
{
FILE* fp =fopen("test.txt", "r");
if (!fp)
{
printf("create file failed\n");
perror("dale");
getchar();
}
int ch;
while ((ch = fgetc(fp))!=EOF)
{
printf("%c", ch);
}
fclose(fp);
printf("end\n");
getchar();
return 0;
}
feof判断文件结尾
该函数可以判断二进制文件和文本文件的结尾。如果文本文件中有-1,使用EOF来进行判断文件结尾就不准确,需要使用feof
#include <stdio.h>
#include<string.h>
int main(int argc, char *argv[])
{
FILE* fp =fopen("test.txt", "r");
if (!fp)
{
printf("create file failed\n");
perror("dale");
getchar();
}
int ch;
while (1==1)
{
ch = fgetc(fp);//先读取文件 然后再判断是否到达文件结尾
if (feof(fp))
{
break;
}
printf("%c", ch);
}
fclose(fp);
printf("run end\n");
getchar();
return 0;
}
fflush刷新缓冲区
把缓冲区的内容写入到文件中去
删除文件
remove
重命名文件
rename
获取文件属性
#include <stdio.h>
#include<string.h>
#include<sys/stat.h>
int main(int argc, char *argv[])
{
struct stat buf;
stat("test.txt",&buf);
printf("file size:%d\n",buf.st_size); //获取大小
printf("run end\n");
getchar();
return 0;
}