一、 Windows环境下的内部命令符
1)MD--创建新的子目录
格式为" [盘符][路径] md [文件夹名称]",例如"C:\>md a"/*--建立a子目录--*/
注意:该命令一次只能建立一个目录。
2)DIR--显示指定路径上所有文件或目录的信息
格式为" [盘符:][路径][文件名] [参数] dir",比如"C:\baci>dir"。输入后回车则会显示出相关信息(如图)。
3)RD--从指定的磁盘删除了目录
格式为"[盘符][路径]rd"。
注意:该命令只能删除空目录,并且不能删除当前目录。
4)CD--进入指定目录
格式为"[路径]cd",例如"C:\>cd baci"。
注意:只能进入当前盘符中的目录。其中"CD\"为回到根目录,"CD.."为回到上一层目录。
5)COPY--拷贝一个或多个文件到指定盘上。
格式为"[源目录或文件] copy [文件名.扩展名][目的目录或文件]",比如"C:\baci\CODE>copy *.exe C:\1".(如下图)
注意:使用该命令进行文件拷贝时,目的目录一定要存在。
6)EDIT—编辑ASCII文件的内容,也可建立一个新文件。
格式为“[路径] edit [文件名.扩展名]”,比如“C:\>edit count.cm”
说明:它们的扩展名的命名方式很灵活,比如.txt 、.bat,设置可以编辑.c、.bas的格式。
7)BACC—编译指定的文件
格式:”[路径]bacc[文件名称]”,比如“C:\>bacc count”
8)bainterp—运行指定的文件
格式:” [路径]bainterp[[文件名称]”,比如“C:\>bainterp count”
二、 并发程序设计 (奇偶代码)
三、 linux环境下 shell命令
在命令状态下:
DD :剪切一行 NDD :剪切N行 DW :剪切一个单词 NDW :剪切N个单词 P :粘贴 YY :复制一行 NYY :复制N行 YW:复制一个单词 NYW :复制N个单词
四、基于消息队列的功能及其应用
系统消息队列API共有四个,使用时需要包括几个头文件:
1)int msgget(key_t key, int msgflg)
参数key是一个键值,由ftok获得;msgflg参数是一些标志位。该调用返回与健值key相对应的消息队列描述字。
在以下两种情况下,该调用将创建一个新的消息队列:
?如果没有消息队列与健值key相对应,并且msgflg中包含了IPC_CREAT标志位;
?key参数为IPC_PRIVATE;
参数msgflg可以为以下:IPC_CREAT、IPC_EXCL、IPC_NOWAIT或三者的或结果。
调用返回:成功返回消息队列描述字,否则返回-1。
注:参数key设置成常数IPC_PRIVATE并不意味着其他进程不能访问该消息队列,只意味着即将创建新的消息队列。
2)int msgrcv(int msqid, struct msgbuf *msgp, int msgsz, long msgtyp, int msgflg);
该系统调用从msgid代表的消息队列中读取一个消息,并把消息存储在msgp指向的msgbuf结构中。
msqid为消息队列描述字;消息返回后存储在msgp指向的地址,msgsz指定msgbuf的mtext成员的长度(即消息内容的长度),msgtyp为请求读取的消息类型;读消息标志msgflg可以为以下几个常值的或:
?IPC_NOWAIT 如果没有满足条件的消息,调用立即返回,此时,errno=ENOMSG
?IPC_EXCEPT 与msgtyp>0配合使用,返回队列中第一个类型不为msgtyp的消息
?IPC_NOERROR 如果队列中满足条件的消息内容大于所请求的msgsz字节,则把该消息截断,截断部分将丢失。
msgrcv手册中详细给出了消息类型取不同值时(>0; <0; =0),调用将返回消息队列中的哪个消息。
msgrcv()解除阻塞的条件有三个:
1.消息队列中有了满足条件的消息;
2. msqid代表的消息队列被删除;
3.调用msgrcv()的进程被信号中断;
调用返回:成功返回读出消息的实际字节数,否则返回-1。
3)int msgsnd(int msqid, struct msgbuf *msgp, int msgsz, int msgflg);
向msgid代表的消息队列发送一个消息,即将发送的消息存储在msgp指向的msgbuf结构中,消息的大小由msgze指定。
对发送消息来说,有意义的msgflg标志为IPC_NOWAIT,指明在消息队列没有足够空间容纳要发送的消息时,msgsnd是否等待。造成msgsnd()等待的条件有两种:
?当前消息的大小与当前消息队列中的字节数之和超过了消息队列的总容量;
?当前消息队列的消息数(单位"个")不小于消息队列的总容量(单位"字节数"),此时,虽然消息队列中的消息数目很多,但基本上都只有一个字节。
调用返回:成功返回0,否则返回-1。
4)int msgctl(int msqid, int cmd, struct msqid_ds *buf);
该系统调用对由msqid标识的消息队列执行cmd操作,共有三种cmd操作:IPC_STAT、IPC_SET 、IPC_RMID。
1. IPC_STAT:该命令用来获取消息队列信息,返回的信息存贮在buf指向的msqid结构中;
2. IPC_SET:该命令用来设置消息队列的属性,要设置的属性存储在buf指向的msqid结构中;可设置属性包括:msg_perm.uid、msg_perm.gid、msg_perm.mode以及msg_qbytes,同时,也影响msg_ctime成员。
3. IPC_RMID:删除msqid标识的消息队列;
调用返回:成功返回0,否则返回-1。
五、进程通信应用的代码
题目:基于通信的四则运算,实现在客户端输入,在服务器端运算,再到客户端输出。 Client.c
Server.c
第二篇:操作系统实验报告十一
《系统内存统计使用》实验报告
实验序号: 十 实验项目名称:系统内存统计使用