📄 filestr.c
字号:
/* * Part of Very Secure FTPd * Licence: GPL v2 * Author: Chris Evans * filestr.c * * This file contains extensions to the string/buffer API, to load a file * into a buffer. */#include "filestr.h"/* Get access to "private" functions */#define VSFTP_STRING_HELPER#include "str.h"#include "sysutil.h"#include "secbuf.h"intstr_fileread(struct mystr* p_str, const char* p_filename, unsigned int maxsize){ int fd; int retval; filesize_t size; char* p_sec_buf = 0; struct vsf_sysutil_statbuf* p_stat = 0; /* In case we fail, make sure we return an empty string */ str_empty(p_str); fd = vsf_sysutil_open_file(p_filename, kVSFSysUtilOpenReadOnly); if (vsf_sysutil_retval_is_error(fd)) { return fd; } vsf_sysutil_fstat(fd, &p_stat); if (vsf_sysutil_statbuf_is_regfile(p_stat)) { size = vsf_sysutil_statbuf_get_size(p_stat); if (size > maxsize) { size = maxsize; } vsf_secbuf_alloc(&p_sec_buf, (unsigned int) size); retval = vsf_sysutil_read_loop(fd, p_sec_buf, (unsigned int) size); if (!vsf_sysutil_retval_is_error(retval) && (unsigned int) retval == size) { str_alloc_memchunk(p_str, p_sec_buf, size); } } vsf_sysutil_free(p_stat); vsf_secbuf_free(&p_sec_buf); vsf_sysutil_close(fd); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -