最近手头有个项目,是porting J2ME中的PIM可选包。
在该可选包中提供了一个文件系统。
通过该功能包, 应用开发者可能很方便的控制手持设备的文件。如创建文件,删除文件等等。
这块比较欠缺, SO 本人就去网上找了一些不常见的api, 对他们进行一些分析。时间有限,只能粗线的写一些。
method1:truncate改变文件大小
相关函数:open, ftruncate
表头文件:#include <unistd.h>
定义函数:int truncate(const char *path, off_t length);
函数说明:truncate()会将参数path指定的文件大小改为参数length指定的大小。 如果原来的文件大小比参数length大,则超过的部分会被删除
返回值 :执行成功则返回0, 失败返回-1, 错误原因存于errno
错误代码:EACCESS 参数path所指定的文件无法存取
EROFS 欲写入的文件存在于只读文件系统内
EFAULT 参数path指针超出可存取空间
EINVAL 参数path包含不合法字符
ENAMETOOLONG 参数path太长
ENOTDIR 参数path路径并非一目录
EISDIR 参数path指向一目录
ETXTBUSY 参数path所指的文件为共享程序,而且正被执行中
ELOOP 参数path有过多符号连接问题
EIO I/O存取错误
表头文件:#include <unistd.h>
定义函数:int truncate(const char *path, off_t length);
函数说明:truncate()会将参数path指定的文件大小改为参数length指定的大小。 如果原来的文件大小比参数length大,则超过的部分会被删除
返回值 :执行成功则返回0, 失败返回-1, 错误原因存于errno
错误代码:EACCESS 参数path所指定的文件无法存取
EROFS 欲写入的文件存在于只读文件系统内
EFAULT 参数path指针超出可存取空间
EINVAL 参数path包含不合法字符
ENAMETOOLONG 参数path太长
ENOTDIR 参数path路径并非一目录
EISDIR 参数path指向一目录
ETXTBUSY 参数path所指的文件为共享程序,而且正被执行中
ELOOP 参数path有过多符号连接问题
EIO I/O存取错误