1、图书管理系统以UNIX系统文件部分系统调用为基础设计一个简易的图书管理系统。
要求实现:图书的录入、查询、借阅、清理、统计等功能、还要实现对每天的借阅情况进行统计并打印出统计报表,操作界面要尽量完善。
图书资料信息必须保存在文件中。
2、信号通信与进程控制(l)进程的创建:编写一段程序,使用系统调用fork()创建两个或多个子进程。
当此程序运行时,在系统中有一个父进程和其余为子进程在活动。
(2)进程的控制:在程序中使用系统调用lockf()来给每一个进程加锁,实现进程之间的互斥。
(3)进程通信:①软中断通信;
②在程序中使用实例signal(SIGINT,SIG_IGN)和signal(SIGQUIT,SIG_IGN)进行通信操作,观察执行结果,并分析原因。
(4)软中断的捕获与重定义。
首先定义一个服务函数function(),然后利用signal(sig,function)系统调用来实现中断的捕获与改道。
(5)使用操作系统保留给用户的信号SIGUSR1和SIGUSR2进行通信。
(6)扩展程序,使之成为信号或事件驱动的应用程序。
3、管道通信利用UNIX系统提供的管道机制实现进程间的通信。
(1)管道通信。
利用pipe()和lockf()系统调用,编写程序,实现同族进程间的通信。
使用系统调用pipe()建立一条管道线;
创建子进程P1、P2、…。
子进程Pi分别向管道各写信息,而父进程则从管道中读出来自于各子进程的信息,实现进程家族间无名管道通讯。
扩展之,使之成为客户/服务器模式,并完成一定的任务(自己定义)。
(2)命名管道通信:利用mkfifo(name,mode)或mknod(name,mode,0)创建一个命名管道,然后利用它和文件部分系统调用实现不同进程间的通信。
改造之,使之成为客户/服务器模式,并完成一定的任务(自己定义)。
4、进程间通信(IPC):消息机制(1)消息的创建、发送和接收使用系统调用msgget(),msgsnd(),msgget(),及msgctl()编制一长度为1K的消息发送和接收的程序。
1)为了便于操作和观察结果,用一个程序作为“引子”,先后fork()两个子进程,SERVER和CLIENT,进行通信。
SERVER和CLIENT也可分别为2个各自独立的程序。
2)SERVER端建立一个Key为175的消息队列,等待其他进程发来的消息。
当遇到类型为1的消息,则作为结束信号,取消该队列,并退出SERVER。
SERVER每接收到一个消息后显示一句“(server)received”。
3)CLIENT端使用key为175的消息队列,先后发送类型从10到1的消息,然后退出。
最后的一个消息,即是SERVER端需要的结束信号。
CLIENT每发送一条消息后显示一句“(client)sent”。
4)父进程在SERVER和CLIENT均退出后结束。
(2)功能扩展:在sever端创建一个服务函数,从而实现C/S通讯要求SERVER每接收到一次数据后不仅仅显示“(server)received”,而是做一些其它事情,比如读取或查询某个文件,或者执行一个shell命令等。
此功能可由设计者自己定义。
在此基础上可以扩展客户端,比如设计一个菜单界面,接收不同的选项,并发送到服务器端,请求对方提供服务。
5、进程间通信(IPC):共享内存机制(1)共享存储区的创建,附接和断接使用系统调用shmget(),shmat(),msgdt(),shmctl(),编制一长度为1K的消息发送和接收的程序。
1)为了便于操作和观察结果,用一个程序作为“引子”,先后fork()两个子进程,SERVER和CLIENT,进行通信。
SERVER和CLIENT也可分别为2个各自独立的程序。
2)SERVER端建立一个Key为375的共享区,并将第一个字节置为-1,作为数据空的标志,等待其他进程发来的消息。
当该字节的值发生变化时,表示收到了信息,并进行处理。
然后再次把它的值设为-1。
如果遇到的值为0,则视为结束信号,取消该队列,并退出SERVER。
SERVER每接收到一次数据后显示“(server)received”。
3)CLIENT端建立一个Key为375的共享区,当共享取得第一个字节为-1时,SERVER端空闲,可发送请求。
CLIENT随即填入9到0。
期间等待Server端的再次空闲。
进行完这些操作后,CLIENT退出。
CLIENT每发送一次数据后显示“(client)sent”。
4)父进程在SERVER和CLIENT均退出后结束。
(2)功能扩展:在sever端创建一个服务函数,从而形成C/S通讯模式要求SERVER每接收到一次数据后不仅仅显示“(server)received”,而是做一些其它事情,比如
2024/7/19 3:04:26 918KB 操作系统
1
IT运维管理系统管理制度,本制度明确了公司IT的使用规定及工作规范。
本制度适用于公司IT运维管理工作。
公司所有相关人员均应严格遵照执行,与信息安全相关的业务也应严格遵守本制度。
2024/7/19 1:28:27 61KB IT运维 制度
1
性能测试是软件测试的一种形式,集中于系统如何在特定的负载下运行系统执行。
这不是关于发现软件bug或者缺陷。
性能测试是根据基准和标准来应对。
性能测试需要给开发人员提供诊断信息,以便他们清除问题。
为了理解软件如何将在用户系统运行,有几种不同类型的性能测试在软件测试期间可以应用。
这是非功能测试,目的在于确定系统的准备情况。
(功能测试集中于软件的个别功能。
)ImagecreditMindsMapped.负载测试负载测试检测系统随着工作负载增加时的性能。
工作负载可能意味着并发用户或事务。
当工作负载增加,监控系统来检测它的响应时间和系统的持久能力。
该工作负载在正常工作条件的参数范围内。
压力测试不像负载测试
2024/7/18 22:51:55 332KB 软件性能测试完整指南
1
1.下载签名工具,请移步到CSDN下载。
2.解压后有两个可执行程序makecert.exe和signcode.exe3.打开命令行窗口,cd到解压目录下4.创建数字证书文件执行命令:makecert/sv"pvk.PVK"/n"CN=XiaoGuo,E=63659875@qq.com"-$"individual"-r-e01/01/2040cer.cer参数说明:CN=XiaoGuo,表示签名者姓名;
E表示邮件地址;
01/01/2040表示证书结束日期执行命令后,输入三次你的密码,如(test123),确定后当前目录下创建了两个文件pvk.PVK和cer.cer5.给程序数字签名双击运行signcode.exe,运行数字签名向导步骤1:选择你要签名的文件名步骤2:签名选项,选择自定义步骤3:签名证书,点击按钮“从文件中选择”,打开文件对话框中选择文件类型“X.509证书",即可选择我们创建的cer.cer文件。
步骤4:选择私钥的位置,我们选择创建的pvk.PVK文件,确认后输入密码(test123)步骤5:哈希算法,选择md5后续步骤保持默认即可,其中时间戳可输入http://timestamp.verisign.com/scripts/timstamp.dll。
最后再输入一次密码,完成签名向导。
1
基于vs2019用了mscomm的控件,可以拿来参考一下,包括EXE执行文件与工程项目。
端口配置可以用滚轮控制,并不是下拉界面,不喜欢可以自行在项目rc中修改
2024/7/17 9:33:25 111.4MB vs 串口调试助手
1
使用方法:一.空间架设1.申请空间2.配置空间3.上传程序4.修改配置文件根目录config.php网站名称,网址,数据库配置无需修改。
5.执行http://网址/install安装结束后删除install文件夹,修改admin地址6.配置淘宝授权http://open.taobao.com加入开放平台=>创建应用=>填写回调URL(在程序后台API配置获取http://网址/U/)=>创建=>应用证书(复制AppKeyAppSecret到后台API配置)=>淘宝授权=>完工7.宝贝同步,设置发货形式即可。
二.自己空间架设修改配置文件config.php///////////////////////////////////////////////////////$dbhost=SAE_MYSQL_HOST_M;//数据库ip地址$dbuser=SAE_MYSQL_USER;//数据库用户名$dbpwd=SAE_MYSQL_PASS;//数据库密码$dbname=SAE_MYSQL_DB;//数据库名$dbport=SAE_MYSQL_PORT;//数据库端口$db_prefix=”t_”;把配置修改成自己的数据库即可。
$dbhost=“localhost”;//数据库ip地址$dbuser=“root”;//数据库用户名$dbpwd=“123456″;//数据库密码$dbname=“waiwailicom”;//数据库名$dbport=3306;//数据库端口$db_prefix=”t_”;执行install即可其他和免费空间架设一样
2024/7/16 20:46:19 288KB 淘宝 自动发货 提货 源码
1
运行编译器为VC++6.0绝对可以执行
1
执行sudoaptupdate&&sudoaptupgrade结果
2024/7/16 7:14:17 79KB Ubuntu
1
S3HelperConsole这是一个S3Helper控制台,允许用户以非常简单的方式对存储桶执行所有必需的操作。
2024/7/15 20:08:25 431KB CSS
1
树突状病毒请阅读以获取详细信息。
注意:Denite.nvim没有定义任何默认映射。
您需要定义它们。
关于Denite是Neovim/Vim统一所有接口的暗功能插件。
它可以用其界面替换许多功能或插件。
它就像一个模糊查找器,但是更通用。
您可以扩展接口并创建源。
您可以使用它进行以下操作:开启档案切换缓冲器插入寄存器的值更改当前目录搜索字符串就像是Vim的。
但是实现起来很丑,而且非常慢。
Denite解决了Unite的问题。
这里有一些好处:理论上更快,因为主进程由Python执行理论上更稳定,因为在运行时无法执行其他任何处理。
实现比联合更简单具有实施新功能的更大潜力Python3比Vimscript更易于使用有很多有用的工具可以使Python3中的代码保持简单(线性,测试器等)。
Unite在官方上已过时,次要错误(甚至主要错误)已不再修复要求反硝化需要Neovim0.4.0+或Vim的8.0+与if_python3。
如果:echohas("python3")返回1,那么您就完成了。
注意:请安装/升级msgp
2024/7/15 10:31:47 133KB python vim asynchronous nvim
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡