📄 tst-fmemopen2.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 + -