当前位置: 首页 > news >正文

合肥有哪些做网站的wordpress $show_date

合肥有哪些做网站的,wordpress $show_date,深圳南山网络公司,袜子网站建设规划书标准IO通过缓冲机制减少系统调用#xff0c;实现更高的效率 全缓冲#xff1a;当流的缓冲区无数据或无空间时才执行实际IO操作 行缓冲#xff1a;当在输入和输出中遇到换行符#xff08;\n#xff09;时#xff0c;进行IO操作 当流和一个终端关联时#xff0c;典型的行缓…标准IO通过缓冲机制减少系统调用实现更高的效率 全缓冲当流的缓冲区无数据或无空间时才执行实际IO操作 行缓冲当在输入和输出中遇到换行符\n时进行IO操作 当流和一个终端关联时典型的行缓冲 无缓冲数据直接写入文件流不进行缓冲 标准IOstdin、stdout、stderr 其中stdin和stdout默认行缓冲 缓冲区大小是1024个字节 文件的打开和关闭 打开 FILE *fopen(const char *path, const char *mode) 成功时返回流指针出错时返回NULL 文件打开的模式非常重要 “r” 或 “rb” 以只读方式打开文件文件必须存在。 “r” 或 ”rb” 以读写方式打开文件文件必须存在。 “w” 或 “wb” 以只写方式打开文件若文件存在则文件长度清为0。若文件不存在则创建。 “w” 或 “wb” 以读写方式打开文件其他同”w”。 “a” 或 “ab” 以只写方式打开文件若文件不存在则创建向文件写入的数 据被追加到文件末尾。 “a” 或 “ab” 以读写方式打开文件。其他同”a” 打开的程序 perror 库函数    头文件stdio.h strerror 库函数  头文件 errno.h  string.h perror和strerror 功能打印系统的错误描述注意是系统错误不是你自己代码错误 关闭 函数原型int fclose(FILE *stream) fclose()调用成功返回0失败返回EOF-1并设置errno流关闭时自动刷新缓冲中的数据并释放缓冲区比如常规文件把缓冲区内容写入磁盘当一个程序正常终止时所有打开的流都会被关闭fclose()函数的入参stream必须保证为非空否则出现段错误。 标准IO的字符输入和输出  按字符输入 int  fgetc(FILE *stream); int  getc(FILE *stream);   //宏 int  getchar(void);   //只能读取标准输入的内容 成功时返回读取的字符若到文件末尾或出错时返回EOF-1 getchar()等同于fgetc(stdin) getc和fgetc区别是一个是宏一个是函数 注意事项 1函数返回值是int类型不是char类型主要是为了扩展返回值的范围。 2 stdin 也是FILE *的指针是系统定义好的,指向的是标准输入键盘输入 3 打开文件后读取是从文件开头开始读。读完一个后读写指针会后移。读写注意文件位置 4 调用getchar会阻塞等待你的键盘输入 如下图所示打开文件后读取是从文件开头开始读。读完一个后读写指针会后移。读写注意文件位置 若想要两次fgetc读取同样内容就重新打开文件  按字符输出 int  fputc(int c, FILE *stream); int  putc(int c, FILE *stream); int  putchar(int c); 成功时返回写入的字符出错时返回EOF putchar(c)等同于fputc(c, stdout) 注意事项 1返回和输入参数都是int类型 2遇到这种错误Bad file descriptor  很可能是文件打开的模式错误只读模式去写只写模式去读 int  fputc(int c, FILE *stream); int  putc(int c, FILE *stream); int  putchar(int c); 成功时返回写入的字符出错时返回EOF putchar(c)等同于fputc(c, stdout) 注意事项 1返回和输入参数都是int类型 2遇到这种错误Bad file descriptor  很可能是文件打开的模式错误只读模式去写只写模式去读 行输入读取整个行 char  *gets(char *s);  读取标准输入到缓冲区s char *fgets(char *s, int size, FILE *stream); 成功时返回s到文件末尾或出错时返回NULL 遇到’\n’或已输入size-1个字符时返回总是包含’\0’ 注意事项 1 gets函数已经被淘汰因为会导致缓冲区溢出 2 fgets 函数第二个参数输入的数据超出sizesize-1个字符会保存到缓冲区最后添加’\0’如果输入数据少于size-1 后面会添加换行符。 行输出写整行 int  puts(const char *s); int fputs(const char *s,  FILE *stream); 成功时返回非负整数出错时返回EOF puts将缓冲区s中的字符串输出到stdout并追加’\n’ fputs将缓冲区s中的字符串输出到stream,不追加  ‘\n’ 二进制读写 文本文件和二进制的区别 存储的格式不同文本文件只能存储文本。 计算机内码概念文本符号在计算机内部的编码计算机内部只能存储数字0101001....,所以所有符号都要编码 二进制读写函数格式 size_t fread(void *ptr, size_t size, size_t n, FILE *fp);//读取fp中内容到ptr中 void *ptr  读取内容放的位置指针 size_t size 读取的块大小 size_t n 读取的个数 FILE *fp  读取的文件指针 size_t fwrite(const void *ptr, size_t size, size_t n, FILE *fp);//从ptr中写入到fp中 void *ptr  写文件的内容的位置指针 size_t size 写的块大小 size_t n 写的个数 FILE *fp  要写的文件指针 注意事项 文件写完后文件指针指向文件末尾如果这时候读读不出来内容。 解决办法移动指针后面讲解到文件头关闭文件重新打开 此时发现并不对读取stu2是错误的原因就是上面说的要注意指针的变化 流刷新定位 int fflush(FILE *fp); 成功时返回0出错时返回EOF 将流缓冲区中的数据写入实际的文件 Linux下只能刷新输出缓冲区,输入缓冲区丢弃 如果输出到屏幕使用fflush(stdout) 下图这个程序1.txt不会有内容因为都在缓冲区中。此时需要加入fflush 流的定位 long ftell(FILE *stream);//成功时返回流的当前读写位置出错时返回EOF long fseek(FILE *stream, long offset,  int whence);//定位一个流成功返回0出错EOF void rewind(FILE *stream); fseek 参数whence参数SEEK_SET/SEEK_CUR/SEEK_END SEEK_SET从距文件开头 offset 位移量为新的读写位置 SEEK_CUR以目前的读写位置往后增加 offset 个位移量 SEEK_END将读写位置指向文件尾后再增加 offset 个位移量 offset参数偏移量可正可负 注意事项 1.文件的打开使用a模式 fseek无效 2.rewind(fp) 相当于 fseek(fp,0,SEEK_SET); 3.这三个函数只适用2G以下的文件 下面程序是抹去ef 格式化输入输出 格式化输出 int fprintf(FILE *stream, const char *fmt, …); int sprintf(char *s, const char *fmt, …); 成功时返回输出的字符个数出错时返回EOF 格式化输入 int fscanf(FILE *stream, const char *format, ...); int sscanf(const char *str, const char *format, ...); 重点掌握sprintf 和sscanf 标准IO练习 标准IO练习 time()用来获取系统时间(秒数) time_t time(time_t *seconds) 1970.1.1 0:0:0 localtime()将系统时间转换成本地时间 struct tm *localtime(const time_t *timer) struct tm { int tm_sec;         /* 秒范围从 0 到 59                */ int tm_min;         /* 分范围从 0 到 59                */ int tm_hour;        /* 小时范围从 0 到 23                */ int tm_mday;        /* 一月中的第几天范围从 1 到 31                    */ int tm_mon;         /* 月份范围从 0 到 11                */ int tm_year;        /* 自 1900 起的年数                */ int tm_wday;         /* 一周中的第几天范围从 0 到 6                */ int tm_yday;        /* 一年中的第几天范围从 0 到 365                    */ int tm_isdst;       /* 夏令时                        */    }; 注意 int tm_mon;        获取的值要加1是正确的月份 int tm_year;        获取的值加1900是正确的年份 获取文件内的所有行数量 while(fgets(buf,32,fp)!NULL){ if(buf[strlen(buf)-1] \n){  //注意判断是否一行太长没有读完 linecount; } } 写完文件记得fflush 写到磁盘里面去。 标准IO磁盘文件的缓冲区一般为4096 注意和标准输出的全缓冲区别标准输出是1024 获取文件内的所有行数量 while(fgets(buf,32,fp)!NULL){ if(buf[strlen(buf)-1] \n){  //注意判断是否一行太长没有读完 linecount; } } 文件IO 文件IO的概念 什么是文件IO又称系统IO系统调用 是操作系统提供的API接口函数。 POSIX接口 了解 注意文件IO不提供缓冲机制 文件IO的API open  close read read 文件描述符概念 英文缩写fdfile descriptor 是0-1023的数字表示文件。 0, 1, 2 的含义 标准输入标准输出错误 open int open(const char *pathname, int flags);   不创建文件 int open(const char *pathname, int flags, mode_t mode);  创建文件不能创建设备文件 成功时返回文件描述符出错时返回EOF 文件IO和标准的模式对应关系 r                                O_RDONLY r                              O_RDWR w                               O_WRONLY | O_CREAT | O_TRUNC, 0664 w                             O_RDWR | O_CREAT | O_TRUNC, 0664 a                                O_WRONLY | O_CREAT | O_APPEND, 0664 a                              O_RDWR | O_CREAT | O_APPEND, 0664 umask概念 umask 用来设定文件或目录的初始权限 文件或目录的初始权限 文件或目录的最大默认权限 - umask close int closeint fd 关闭后文件描述符不能代表文件 文件IO的读写和定位 容易出错点 求字符串长度使用sizeof对二进制数据使用strlen printf 的字符最后没有’\0’ 注意看下图write使用的是sizeof此处应该用strlen遇\0结束 修改后打印 此时上图buf2中无内容因为此时文件指针在尾部。此时先关闭再打开当然也可以使用lseek 输出如图所示 文件定位  目录操作和文件属性获取 目录读取 打开目录 #include  dirent.h DIR  *opendir(const char *name); DIR *fdopendir(int fd);  使用文件描述符要配合open函数使用 DIR是用来描述一个打开的目录文件的结构体类型 成功时返回目录流指针出错时返回NULL 读取目录 #include  dirent.h struct  dirent *readdir(DIR *dirp); struct dirent是用来描述目录流中一个目录项的结构体类型 包含成员char  d_name[256]   参考帮助文档 成功时返回目录流dirp中下一个目录项 出错或到末尾时时返回NULL 关闭目录 closedir函数用来关闭一个目录文件: #include  dirent.h int closedir(DIR *dirp); 成功时返回0出错时返回EOF 代码遍历目录读取其中.和..代表当前目录和上一级目录 文件属性获取 修改文件权限 chmod/fchmod函数用来修改文件的访问权限: #include  sys/stat.h int  chmod(const char *path, mode_t mode); int  fchmod(int fd, mode_t mode); 成功时返回0出错时返回EOF 注意在vmware和windows共享的文件夹下有些权限不能改变。 获取文件属性 #include  sys/stat.h int  stat(const char *path, struct stat *buf); int  lstat(const char *path, struct stat *buf); int  fstat(int fd, struct stat *buf);//同stat不过传的是文件描述符 成功时返回0出错时返回EOF 如果path是符号链接stat获取的是目标文件的属性而lstat获取的是链接文件的属性 代码ls -l实现
http://www.hkea.cn/news/14359940/

相关文章:

  • 自己建网站花钱吗广州海珠区核酸检测点
  • 母婴会所 网站源码html5做的网站有哪些
  • 替人做赌彩网站被判刑wordpress资讯站
  • 温州微网站策划公司起名
  • 网站后台上传word个人网站如何进行网络推广
  • 快递网站模板网站建设客户需求表 文库
  • 苏州知名网站制作开发咨询类公司注册需要什么
  • 短视频素材下载网站 免费网站数据库设置权限
  • 社交信息共享网站开发外包网站备案要关多久
  • 淮南装饰公司网站建设深圳前十vi设计公司
  • 成都金融网站建设公司排名网页升级访问升级自动跳
  • 芗城区建设局网站洛阳网站建设哪家好
  • 做彩票网站服务器xyz域名做网站好么
  • 顶呱呱做网站吗河南怎样做网站推广
  • 怎么敲代码做网站南宁企业网站制作模板
  • 黄冈网站开发珠宝钻石网站建站
  • 网站建设网页设计电销外呼软件
  • 成都市做网站公司如网站站长如何对付黑客
  • 如何微信做演讲视频网站wordpress 固定网址
  • 深圳建设外贸网站wordpress 文章页调用
  • 微信分享的h5网站开发手机软件开发工程师
  • 网站开发及app开发报价四川建设培训网
  • 信阳网站推广公司wordpress强大的电商
  • 阿里云nas做网站互联网平台是做什么的
  • 建设项目环境影响评价登记表网站找程序员代写程序
  • 海外游戏推广平台seo网站优化方案案例
  • 系统网站自助建站建e室内设计网cad
  • 天德建设集团网站百度怎么优化网站关键词
  • 顺义区做网站建设英文版网站
  • 个人网站可以做c2c吗查询网站备案进度查询