/
redgpu
/
r500
Обзор
Документация
Войти
/
redgpu
/
r500
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/file.c
50 строк
1 KB
Zack Buhman
rename drm2 to src
04 ноя 2025, 21:13
04 ноя 2025, 21:13
a335a22
Код
Авторство
О чём код?
#include <errno.h> #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <assert.h> #include "file.h" void * file_read(const char * path, int * size_out) { int fd = open(path, O_RDONLY); if (fd == -1) { fprintf(stderr, "open(%s): %s\n", path, strerror(errno)); return NULL; } off_t size = lseek(fd, 0, SEEK_END); if (size == (off_t)-1) { fprintf(stderr, "lseek(%s, SEEK_END): %s\n", path, strerror(errno)); return NULL; } off_t start = lseek(fd, 0, SEEK_SET); if (start == (off_t)-1) { fprintf(stderr, "lseek(%s, SEEK_SET): %s\n", path, strerror(errno)); return NULL; } void * buf = malloc(size); ssize_t read_size = read(fd, buf, size); if (read_size == -1) { fprintf(stderr, "read(%s): %s\n", path, strerror(errno)); return NULL; } int ret = close(fd); if (ret == -1) { fprintf(stderr, "close(%s): %s\n", path, strerror(errno)); return NULL; } if (size_out != NULL) { *size_out = size; } return buf; }