2024.5.23 作业 xyt

devtools/2024/12/5 13:02:27/

今日课堂内容:超时检测 数据库

select函数

#include <myhead.h>
int main(int argc, const char *argv[])
{//1、定义检测容器fd_set readfds;//2、清空内容FD_ZERO(&readfds);//3、将文件描述符放入集合中FD_SET(0, &readfds);//4、定义超时时间变量struct timeval tv = {5, 0};while(1){tv.tv_sec = 5;tv.tv_usec = 0;int res = select(1, &readfds, NULL, NULL, &tv);if(res == -1){perror("select error");return -1;}else if(res == 0){printf("time out\n");return -1;}//判断if(FD_ISSET(0, &readfds)){int num = 0;scanf("%d", &num);printf("触发键盘输入:%d\n", num);}}return 0;
}

poll函数

#include <myhead.h>
int main(int argc, const char *argv[])
{//1、定义文件描述符集合struct pollfd pfd;pfd.fd = 0;        //表示检测的是0号文件描述符pfd.events = POLLIN;      //表示检测读事件//2、调用函数while(1){int res = poll(&pfd, 1, 5000);if(res == -1){perror("poll error");return -1;}else if(res == 0){printf("time out\n");return -1;}//判断if(pfd.revents == POLLIN){int num = 0;scanf("%d", &num);printf("触发键盘输入:%d\n", num);}}return 0;
}

通过信号完成时间的设置

#include <myhead.h>
//定义信号处理函数
void handler(int signo)
{if(signo == SIGALRM){printf("系统已经随机为您出一张牌\n");alarm(5);}
}int main(int argc, const char *argv[])
{char ch;        //用户选择的牌//将SIGALRM信号捕获到自定义函数中if(signal(SIGALRM, handler) == SIG_ERR){perror("signal error");return -1;}while(1){alarm(5);          //给出5秒考虑时间printf("请出牌>>>");scanf("%c", &ch);getchar();printf("您出的牌为:%c\n", ch);}return 0;
}

数据库

#include <myhead.h>
int main(int argc, const char *argv[])
{//1、创建或打开一个数据库sqlite3 *ppDb = NULL;if(sqlite3_open("my.db", &ppDb) != SQLITE_OK){printf("open error:%d, %s\n", sqlite3_errcode(ppDb),sqlite3_errmsg(ppDb));return -1;}printf("数据库已经打开\n");//2、关闭数据库sqlite3_close(ppDb);return 0;
}

今日课堂提问:

1.IO多路复用的原理?
答:定义一个文件描述符集合,阻塞等待集合中是否有事件产生,如果有事件产生,则执行对于的函数

2.实现IO多路复用可以使用哪些函数完成?
答:select、 poll、epoll

3.select和poll的区别?
答:select是检测不同的文件描述符集合,包括读、写、异常文件描述符集合;poll将检测的文件描述符放入一个文件描述符结构体数组中。
有关超时参数,select是地址传递而pol1是值传递;
select在检测文件描述符集合大小有限制,而poll没有

4.在UDP通信过程中,能否使用connect函数?为什么?有什么好处?
答:可以使用,可以跟指定的端点建立唯一的通道,在通信过程中,不受其他端点的影响

5.OSI7层网络体系结构有哪些?
答:物理、数据链路层、网络层、传输层、会话层、表示层、应用层

6.四层网络体系结构?
答:应用层、传输层、网络层、网络接口层

7.ARP、HTTP、TFTP、IP、UDP、TCP说出全程和所在层?
答:arp地址解析协议,网络接口层
http超文本传输协议,应用层
IP网际协议,网络层
udp用户数据报协议,传输层tcp传输控制协议,传输层

8.100.0.125.2对于的默认子网掩码是多少?
答:255.0.0.0

9.顺序表和链表的区别?
答:顺序表类似于数组,特点是逻辑上连续物理地址也连续;链表是逻辑上连续的数据元素,物理地址上不一定连续;顺序表存储数据有上限,链表没有

10.进程和线程的区别?
答:线程是进程的最小执行单元、进程之间用户空间是相互独立的、多个线程共享同一个进程的资源、


http://www.ppmy.cn/devtools/43914.html

相关文章

移动端开发 笔记02

目录 01 媒体查询 02 rem 和 em 单位的使用 03 css 预处理语言 04 布局容器 05 栅格系统 01 媒体查询 主要作用&#xff1a; 能够检测不同的媒体设备以及媒体类型和尺寸大小从而生效不同的出css代码 实现响应式效果 语法格式&#xff1a; media 媒体规则 媒体类型 and(媒体…

「Element-UI表头添加带Icon的提示信息」

一、封装全局组件 &#x1f353; 注意&#xff1a;可以直接复制该文件 <!-- // 写一个PromptMessage的组件&#xff0c;并全局注册 --> <template><div class"tooltip"><el-tooltip effect"dark" placement"right">&l…

常见Windows命令汇总

1.打开命令提示符或PowerShell&#xff1a; cmd&#xff1a;打开命令提示符。 powershell&#xff1a;打开PowerShell。 2.文件和目录操作&#xff1a; cd&#xff1a;更改当前目录。例如&#xff0c;cd C:\Users\Username\Documents 将当前目录更改为 "Documents" …

全球首例光伏电场网络攻击事件曝光

快速增长的光伏发电正面临日益严重的网络安全威胁。近日&#xff0c;日媒报道了首个针对光伏电场的网络攻击事件。 首例公开确认的光伏电网攻击 日本媒体《产经新闻》近日报道&#xff0c;黑客劫持了一个大型光伏电网中的800台远程监控设备(由工控电子制造商Contec生产的Solar…

研发设计管理、研发设计管理系统有哪些

研发设计管理系统种类繁多&#xff0c;每种系统都有其特定的功能和用途。以下是一些常见的研发设计管理系统及其主要功能&#xff1a; PLM&#xff08;产品生命周期管理&#xff09;研发管理系统&#xff1a; 功能&#xff1a;管理产品从概念、设计、开发、制造、销售到维护的…

Redis连接池

本次实现的Redis连接池是一个单例且多线程安全的连接池。 主要实现的功能为&#xff1a;读取配置&#xff0c;将配置中对应建立redis连接并加入到连接池中&#xff0c;然后从连接池中取出连接使用。每当配置进行修改&#xff0c;重新往池子中加入连接。 通用类 实现一些基础都…

Web Accessibility基础:构建无障碍的前端应用

Web Accessibility&#xff08;网络无障碍&#xff09;是确保所有人都能平等访问和使用网站和应用程序的关键。这包括视觉、听觉、运动和认知能力有限的用户。以下是一些构建无障碍前端应用的基础原则和代码示例&#xff1a; 2500G计算机入门到高级架构师开发资料超级大礼包免…

MyBatis出现:SQLSyntaxErrorException: Unknown column ‘XXX‘ in ‘field list‘

<update id"updateStudent">update tb_students set stu_name${stuName},stu_gender${stuGender},stu_age${stuAge},stu_tel${stuTel}where stu_num ${stuNum}</update> 本质上来说&#xff0c;是Mybatis使用上的错误&#xff0c;不熟悉&#xff0c;理…