+<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