📄 hal_file.h
字号:
#ifndef __HAL_FILE_H__
#define __HAL_FILE_H__
#include "hal_unistd_dev.h"
#include "../pub/hal_llist.h"
#include "../pub/hal_sem.h"
#include "../pub/hal_types.h"
//#include <hal_fcntl.h>
#define HAL_MAX_FD 20
#define STDIN_FILENO 0 /* standard input file descriptor */
#define STDOUT_FILENO 1 /* standard output file descriptor */
#define STDERR_FILENO 2 /* standard error file descriptor */
/*
* 本头文件定义了用于内部使用的控制文件访问的信息
*/
/*
* 函数 hal_find_dev() 用于使用name字符串从对应的设备链表list中查找出相应的设备
* 如果发现合适的设备,则返回该器件结构变量对应的指针
*/
extern hal_dev* hal_find_dev (const char* name, hal_llist* list);
/*
* hal_get_fd() 用于为设备(文件)dev分配文件描述符,返回值为负指出操作不成功
* 如果成功,则返回文件描述符在文件描述符池中的索引。
*/
extern int hal_get_fd (hal_dev* dev);
/*
* hal_release_fd() 用于释放索引为fd的文件描述符.
*/
extern void hal_release_fd (int fd);
/*
* "hal_fd_list" 为文件描述符池.
*/
extern hal_fd hal_fd_list[];
/*
* "hal_dev_list" 是注册的设备链表的头
*/
extern hal_llist hal_dev_list;
/*
* "hal_fd_list_lock" 是一个用于保证访问文件描述符缓冲池安全的信号量
*/
HAL_EXTERN_SEM(hal_fd_list_lock)
/*
* "hal_max_fd" 指出了文件描述符的最大个数
*/
extern hal_32 hal_max_fd;
/*
* hal_io_redirect() 用于重定向stdout, stdin和
* stderr 到参数指定的器件中。
*/
extern void hal_io_redirect(const char* stdout_dev,
const char* stdin_dev,
const char* stderr_dev);
#endif /* __HAL_FILE_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -