#include <stdio.h>
int main()
{
FILE *fp = NULL;//创建输出流的指针
fp = fopen("/tmp/test.txt", "w+");//传入指定的目录和指定为可读可写模式,打开文件,若不存在则创建文件
fprintf(fp, "This is testing for fprintf...\n");//向指针值对应的输出流写入一行字符串
fputs("This is testing for fputs...\n", fp);//写入另一行字符串到执政之对应的输出流当中
fclose(fp);//关闭文件,释放内存;这里没创建缓冲区,不需要清除缓冲区
}
以上代码运行正确:我在linux /tmp下发现一个添加了内容的文件,该文件对该账户的权限时wr-,后来报分段故障时,我把它改成了777的最高权限;
#include <stdio.h>
int main()
{
FILE *fp = NULL;//定义一个输入流指针
char buff[500];//定义一个输入流缓冲区:读取的数据先放到这里
fp = fopen("/tmp/test.txt", "r");//打开刚创建的文件,并指定为可读
fscanf(fp, "%s", buff);//使用fscanf从指针值指向的输入流读出数据为字符串形式,并存储到缓冲区的地址buff中,遇到空格时就停止读取
printf("1: %s\n", buff );//打印数组
fgets(buff, 500, fp);//使用fgets向缓冲区中试图读入244个字符,完成之前若遇到换行符或者eof,则返回已经读到的字符给表示缓冲区的数组;
printf("2: %s\n", buff );
fgets(buff, 500, fp);;//使用fgets向缓冲区中试图读入244个字符,完成之前若遇到换行符或者eof,则返回已经读到的字符给表示缓冲区的数组;
printf("3: %s\n", buff );
fclose(fp);
}
以上代码编译位报错,但运行时却弹出segmentation?晚上查是访问了不该访问的内存,换一台机器运行是不是会好了;