⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tst-fmemopen2.c

📁 绝对正真的stdio.h的实现
💻 C
字号:
#include <assert.h>#include <stdio.h>#include <string.h>#include <sys/types.h>static intdo_test (void){  int result = 0;  char buf[100];  FILE *fp = fmemopen (buf, sizeof (buf), "w");  if (fp == NULL)    {      puts ("fmemopen failed");      return 0;    }  static const char str[] = "hello world";#define nstr (sizeof (str) - 1)  fputs (str, fp);  off_t o = ftello (fp);  if (o != nstr)    {      printf ("first ftello returned %ld, expected %zu\n", o, nstr);      result = 1;    }  rewind (fp);  o = ftello (fp);  if (o != 0)    {      printf ("second ftello returned %ld, expected %zu\n", o, 0);      result = 1;    }  if (fseeko (fp, 0, SEEK_END) != 0)    {      puts ("fseeko failed");      return 1;    }  o = ftello (fp);  if (o != nstr)    {      printf ("third ftello returned %ld, expected %zu\n", o, nstr);      result = 1;    }  rewind (fp);  static const char str2[] = "just hello";#define nstr2 (sizeof (str2) - 1)  assert (nstr2 < nstr);  fputs (str2, fp);  o = ftello (fp);  if (o != nstr2)    {      printf ("fourth ftello returned %ld, expected %zu\n", o, nstr2);      result = 1;    }  fclose (fp);  static const char str3[] = "just hellod";  if (strcmp (buf, str3) != 0)    {      printf ("final string is \"%s\", expected \"%s\"\n",              buf, str3);      result = 1;    }  return result;}#define TEST_FUNCTION do_test ()#include "../test-skeleton.c"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -