</pre>\r
</code>\r
</p>\r
+<p>\r
+\83t\83@\83C\83\8b\82ð\93Ç\82Ý\8d\9e\82Þ\8a®\91S\82È\83R\81[\83h\82Í\8e\9f\82Ì\92Ê\82è\82Å\82 \82é. (\83T\83C\83Y\82ª\93¾\82ç\82ê\82é\82Æ\89¼\92è\82µ\82Ä\82¢\82é) (<a href="https://gitlab.com/wikibooks-opengl/modern-tutorials/blob/master/common-sdl2/shader_utils.cpp">OpenGL WikiBook</a>\82æ\82è):\r
+<code>\r
+<pre>\r
+char* file_read(const char* filename) {\r
+ SDL_RWops *rw = SDL_RWFromFile(filename, "rb");\r
+ if (rw == NULL) return NULL;\r
+\r
+ Sint64 res_size = SDL_RWsize(rw);\r
+ char* res = (char*)malloc(res_size + 1);\r
+\r
+ Sint64 nb_read_total = 0, nb_read = 1;\r
+ char* buf = res;\r
+ while (nb_read_total < res_size && nb_read != 0) {\r
+ nb_read = SDL_RWread(rw, buf, 1, (res_size - nb_read_total));\r
+ nb_read_total += nb_read;\r
+ buf += nb_read;\r
+ }\r
+ SDL_RWclose(rw);\r
+ if (nb_read_total != res_size) {\r
+ free(res);\r
+ return NULL;\r
+ }\r
+\r
+ res[nb_read_total] = '\0';\r
+ return res;\r
+}\r
+</pre>\r
+</code>\r
+</p>\r
<h2>\8fÚ\8d×</h2>\r
<p>\r
\82»\82ê\82¼\82êsize\83o\83C\83g\82Ì\8dÅ\91ånum\8cÂ\82Ì\83I\83u\83W\83F\83N\83g\82ð\93Ç\82Ý\8d\9e\82Ýptr\83|\83C\83\93\83^\82Ö\8f\91\82«\8d\9e\82Þ.\r
\83G\83\89\81[\82ª\94\90¶\82µ\82½, \82Ü\82½\82Í\83f\81[\83^\83X\83g\83\8a\81[\83\80\82ð\8a®\91S\82É\93Ç\82Ý\8d\9e\82ñ\82¾\8fê\8d\87\82Í0\82ð\96ß\82·.\r
</p>\r
<p>\r
-<a href="SDL_RWread.html">SDL_RWclose</a>\82Í\8eÀ\8dÛ\82É\82Í<a href="SDL_RWops.html">SDL_RWops</a>\82Ìread\83\81\83\\83b\83h\82ð\8cÄ\82Ô\83}\83N\83\8d\82Å\82 \82é.\r
+<a href="SDL_RWread.html">SDL_RWread()</a>\82Í\8eÀ\8dÛ\82É\82Í<a href="SDL_RWops.html">SDL_RWops</a>\82Ìread\83\81\83\\83b\83h\82ð\8cÄ\82Ô\83}\83N\83\8d\82Å\82 \82é.\r
</p>\r
<h3>\97á</h3>\r
<p>\r
<code>\r
<pre>\r
-int buffer[10];\r
-SDL_RWread(rwop, buffer, sizeof(buffer), 4);\r
+Uint32 buffer[10];\r
+SDL_RWread(rwop, buffer, sizeof(Uint32), 10);\r
</pre>\r
</code>\r
32bit\90®\90\94\82ª\95Û\91¶\82³\82ê\82Ä\82¢\82é\82±\82Æ\82ð\91z\92è\82µ\82Ä\82¢\82é. 40byte\82Ì\83f\81[\83^\82ð\93Ç\82Ý\8d\9e\82Ý, buffer\82É\8f\91\82«\8d\9e\82Þ.\r
-\82»\82ê\82¼\82ê\82Ìint\82Í4byte, 32bit\82Å\82 \82é.\r
+\82»\82ê\82¼\82ê\82ÌUint32\82Í4byte, 32bit\82Å\82 \82é.\r
</p>\r
<p>\r
<code>\r
<pre>\r
-long buffer[10];\r
-SDL_RWread(rwop, buffer, sizeof(buffer), 8);\r
+Uint64 buffer[10];\r
+SDL_RWread(rwop, buffer, sizeof(Uint64), 10);\r
</pre>\r
</code>\r
64bit\90®\90\94\82ª\95Û\91¶\82³\82ê\82Ä\82¢\82é\82±\82Æ\82ð\91z\92è\82µ\82Ä\82¢\82é. 80byte\82Ì\83f\81[\83^\82ð\93Ç\82Ý\8d\9e\82Ý, buffer\82É\8f\91\82«\8d\9e\82Þ.\r
-\82»\82ê\82¼\82ê\82Ìint(long)\82Í8byte\82Å, 10\8cÂ\82Ì\92l\82ð\93Ç\82Ý\8d\9e\82Þ.\r
+\82»\82ê\82¼\82ê\82ÌUint64\82Í8byte\82Å, 10\8cÂ\82Ì\92l\82ð\93Ç\82Ý\8d\9e\82Þ.\r
</p>\r
<h2>\8aÖ\98A\8d\80\96Ú(\8aÖ\90\94)</h2>\r
-<a href="SDL_RWwrite.html">SDL_RWwrite</a><br>\r
-<a href="SDL_RWseek.html">SDL_RWseek</a><br>\r
<a href="SDL_RWclose.html">SDL_RWclose</a><br>\r
+<a href="SDL_RWFromConstMem.html">SDL_RWFromConstMem</a><br>\r
<a href="SDL_RWFromFile.html">SDL_RWFromFile</a><br>\r
<a href="SDL_RWFromFP.html">SDL_RWFromFP</a><br>\r
<a href="SDL_RWFromMem.html">SDL_RWFromMem</a><br>\r
-<a href="SDL_RWFromConstMem.html">SDL_RWFromConstMem</a><br>\r
+<a href="SDL_RWseek.html">SDL_RWseek</a><br>\r
+<a href="SDL_RWwrite.html">SDL_RWwrite</a><br>\r
<h2>SDL Wiki\82Ö\82Ì\83\8a\83\93\83N</h2>\r
<a href="https://wiki.libsdl.org/SDL_RWread">SDL_RWread - SDL Wiki</a>\r
<hr>\r