嵌入式linux的c语言编程技巧总结
嵌入式linux的c语言编程技巧总结
1. 获取文件的信息:
stat(char* filename, struct stat* buf);
struct stat {
dev_t st_dev; /* 设备 */
ino_t st_ino; /* 节点 */
mode_t st_mode; /* 形式 */
nlink_t st_nlink; /* 硬连接 */
uid_t st_uid; /* 用户ID */
gid_t st_gid; /* 组ID */
dev_t st_rdev; /* 设备类型 */
off_t st_off; /* 文件字节数 */
unsigned long st_blksize; /* 块大小 */
unsigned long st_blocks; /* 块数 */
time_t st_atime; /* 最后一次访问时间 */
time_t st_mtime; /* 最后一次修改时间 */
time_t st_ctime; /* 最后一次改变时间(指属性) */
};
struct statfs
{
long f_type; /* 文件系统类型 */
long f_bsize; /* 块大小*/
long f_blocks; /* 块多少*/
long f_bfree; /* 闲暇的块()*/
long f_bavail; /* 可用块 */
long f_files; /* 总文件节点 */
long f_ffree; /* 闲暇文件节点 */
fsid_t f_fsid; /* 文件系统id */
long f_namelen; /* 文件名的最大长度 */
long f_spare[6]; /* spare for later */
}; stat(char* filename, struct stat* buf);
struct stat {
dev_t st_dev; /* 设备 */
ino_t st_ino; /* 节点 */
mode_t st_mode; /* 形式 */
nlink_t st_nlink; /* 硬连接 */
uid_t st_uid; /* 用户ID */
gid_t st_gid; /* 组ID */
dev_t st_rdev; /* 设备类型 */
off_t st_off; /* 文件字节数 */
unsigned long st_blksize; /* 块大小 */
unsigned long st_blocks; /* 块数 */
time_t st_atime; /* 最后一次访问时间 */
time_t st_mtime; /* 最后一次修改时间 */
time_t st_ctime; /* 最后一次改变时间(指属性) */
};
struct statfs
{
long f_type; /* 文件系统类型 */
long f_bsize; /* 块大小*/
long f_blocks; /* 块多少*/
long f_bfree; /* 闲暇的块()*/
long f_bavail; /* 可用块 */
long f_files; /* 总文件节点 */
long f_ffree; /* 闲暇文件节点 */
fsid_t f_fsid; /* 文件系统id */
long f_namelen; /* 文件名的最大长度 */
long f_spare[6]; /* spare for later */
};
2. 获取文件访问权限或许判定文件是否存在:
int access(char* filename, int mode);
3. 获取当前时间:
time_t t;char* asctime(localtime(&t));
或许
time(&t);char* ctime(&t);
得到的字符串形式为:Wed Mar 12 10:07:53 2003
4. 计算两个时刻之间的时间差
double difftime(time_t time2, time_t time1);
5. 删除某文件:
int unlink(char* pathname);
int remove(char* pathname);
6. 删除某目录:
int rmdir(const char* pathname);
7. 获妥当前所在目录名:
char * getcwd(c