day26- 系统编程之 文件IO(II) 及 文件属性

一、文件IO函数(续)

1.1 lseek函数:(与fseek用法相似)

off_t lseek(int fd, off_t offset, int whence);

功能:
            定位光标的位置
参数:
            fd:文件描述符
            offset:偏移量

1.2 fileno函数

int fileno(FILE *stream);

功能:
    获得一个文件流指针中的文件描述符
参数:
    stream:文件流指针
返回值:
    成功返回文件描述符
    失败返回-1

1.3 fdopen函数

FILE *fdopen(int fd, const char *mode);
  • 功能:

            将文件描述符转化为文件流指针

  •  参数:

            fd:已经打开的文件描述符
            mode:
                "r"
                "r+"
                "w"
                "w+"
                "a"
                "a+"

  •  返回值:

            成功返回文件流指针
            失败返回NULL    

1.4 perror函数(系统级别报错函数)

void perror(const char *s);
             标识性信息,写对应的函数,如fopen main.c;10

      作用是将上一个函数发生错误的原因输出到标准错误输出(stderr)

      适用于man2、man3的函数使用,第三方库就不行;

1.5 文件权限

fopenopen
wO_WRONLY|O_CREAT|O_TRUNC 
w+O_RDWR|O_CREAT|O_TRUNC 
rO_RDONLY 
r+O_RDWR
aO_WRONLY|O_CREAT|O_APPEND
a+O_RDWR|O_CREAT|O_APPEND

二、 目录(只读)

.和..为隐藏目录,任何目录下都存在.和..

2.1 操作步骤

        1,打开目标目录 opendir
        2.读取目录        readdir
        3.关闭目录         closedir

目录 当文件看,只不过操作函数和操作文件函数不一样

         DIR表示目录流指针

        direntry表示一次取整体目录的一条

2.2 相关函数

2.2.1 opendir函数

DIR *opendir(const char *name);

返回值:成功,返回目录流指针;否则,返NULL;

2.2.2 readdir函数

struct dirent *readdir(DIR *Dirp);

struct dirent的结构体:

        其中,我们可能使用:

char d_name[256];                        //文件名

unsigned char d_type;                  //文件类型

        文件类型:

块设备,存储类,硬盘、光盘等
字符设备,如鼠标、键盘等
目录
管道
符号链接也称软连接,与windows的桌面快捷方式类似
普通文件
网络文件
不认识

 

2.2.3 closedir函数

int closedir(DIR *dirp);

2.3 时间函数

2.3.1 time函数//秒数 

time_t time(time_t *tloc);

若传入NULL,返回秒数 

 2.3.2 localtime函数//日期

struct tm *localtime(const time_t *timep);

 

三、总结

 

 

### 网络单线复用 VLAN 配置方法 为了实现网络中的单线复用并确保 IPTV 服务稳定运行,可以通过合理配置 VLAN 来区分不同的业务流量。具体来说: 对于路由器或交换机设备而言,需创建多个虚拟局域网(VLAN),以便于隔离不同类型的通信数据流。针对 IPTV 流量,通常会分配一个独立的 VLAN ID 给其使用[^1]。 #### 创建 VLAN 接口 在路由器上执行如下命令以建立指定编号的 VLAN 接口: ```shell interface Vlan-interface <ID> ip address <IP地址> <子网掩码> ``` #### 设置端口模式 将连接至光猫或其他接入层设备的物理接口设为 Trunk 类型,并允许所有必要的 VLAN 数据帧通过此链路传输。 ```shell interface GigabitEthernet0/0/1 port link-type trunk port trunk permit vlan all ``` #### 添加默认路由 如果存在多条路径通往外部互联网,则应设定一条缺省静态路由指向 ISP 提供的下一跳 IP 地址。 ```shell ip route-static 0.0.0.0 0.0.0.0 <下一跳IP> ``` 以上操作能够有效支持基于单一物理线路承载多种业务需求的情况,同时也便于后续管理维护工作开展。 --- ### 解决 IPTV 卡顿问题的方法 当遇到 IPTV 视频播放过程中频繁出现缓冲现象时,可能是因为 IGMP Snooping 功能影响到了组播包的有效传递效率所致。对此情况可采取以下措施加以改善: 登录到管理界面关闭二层交换设备上的 IGMP Snooping 开关选项,从而减少不必要的过滤行为对实际观看体验造成的干扰[^2]。 另外还需注意检查是否存在其他潜在因素如带宽不足、硬件故障等问题同样可能导致此类症状发生,在排除上述可能性后再考虑调整软件层面的相关参数设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值