当前位置:文档之家› LINUX编程-实验四 Linux的文件处理

LINUX编程-实验四 Linux的文件处理

LINUX编程-实验四 Linux的文件处理
LINUX编程-实验四 Linux的文件处理

实验四Linux的文件处理

1.目的要求

(1)学习和掌握gcc等Linux的开发调试环境。

(2)学习并掌握Linux的文件操作。

(3)编写并实现“学生管理系统”程序。

2.实验内容

(1)文件底层系统调用实验

●使用vi将程序清单4-1和4-2的程序输入,并在当前目录下创建文件“file.in”和文

件“file.out”,尽可能的使文件“file.in”大一些。

●利用gcc分别编译这两个程序,写出编译命令和执行结果;如果不成功,尝试利用

gdb调试。

gcc –o 4-1 4-1.c _____________________

gcc –o 4-2 4-2.c _________________________________________________

______________________________________________________________________

______________________________________________________________________

___________________________

●仔细观察这两个程序,比较标准C的文件操作和Linux的系统调用open、read、

write等的使用区别。

C文件系统调用fopen和fclose,fputc和fgetc进行对文件的读写,只需要指定文件

名和读写方式,系统调用open,read,write等对文件进行读写,创建文件时要指定读

写的权限,打开文件时,为了实现没有文件时创建文件,要加上特别的参数。

_______________________________________________________________________

_______________________________________________________________________

_______________________________________________________________________

____________________

●按照说明重新修改程序4-2,并使用time命令察看程序执行的时间效率上有何区别。

___每次只读写一个字符时用时多,因为每次都要启动磁盘,而利用数组的程序用

时少,每次读写多个字符,启动磁盘的次数减少,所以用时少。

_______________________________________________________________________ _______________________________________________________________________ _____________

●输入、编译并运行程序4-3和4-4,写出执行结果,并比较他们fseek和lseek在使

用方法上的异同。

_

fseek使用的是FILE的指针,lseek使用的是文件描述符。

_______________________________________________________________________ ______________________________________________________________________

(2)目录信息的单层浏览

●使用vi将程序清单4-5和4-6程序输入。

●利用gcc分别编译这两个程序,写出编译命令和执行结果;如果不成功,尝试

利用gdb调试。

_gcc –o 4-5 4-5.c

gcc –o 4-6 4-6.c

___________________________________________________________ ___________________________________________________________________ _________________________

●仔细观察这两个程序,比较它们的区别。

(3)目录信息的完整浏览

●使用vi将程序清单4-7和4-8程序输入。

●利用gcc分别编译这两个程序,写出编译命令和执行结果;如果不成功,尝试

利用gdb调试。

__gcc –o 4-7 4-7.c

__gcc –o 4-8 4-8.c

___________________________________________________________

____________________________

●仔细阅读、比较这两个程序,并写出目录浏览的算法描述。

_4-7程序不能传递参数,只能在程序内确定要浏览的目录路径,

4-8程序可以加参数_,如果没有参数,就默认为当前路径。

___________________________________________________________________

4-7程序:程序中提供浏览目录路径,调用opendir打开目录,然后进入,读

取目录中文件,判断类型,如果是普通文件就输出文件名,如果是目录,就进

入目录,循环调用函数,浏览文件

4-8程序:运行程序时可以提供参数,然后浏览参数目录中的文件,如果没有

提供就把当前目录当作参数,打开目录,进入目录,然后读取每项,判断文件

类型,如果是目录,就循环调用浏览函数,如果是普通文件,就直接输出信息。

___________________________________________________________________

_______________ _______

(4)mmap、msync和munmap的使用

●使用vi将程序清单4-9程序输入。

●利用gcc编译程序,写出编译命令和执行结果;如果不成功,尝试利用gdb调

试。

__gcc –o 4-9 4-9.c

_

______________________________________________________________

______________________________________________________________

_______________________________

仔细阅读程序,并画出程序流程图。

_______________________________________________________________________________ ________________________________________________________________________

_______

(5)学习并分别使用标准C的文件操作函数和Linux的系统调用创建一个对学生基本信息进行操作(插入、修改和删除)的C程序,学生基本信息以结构体的形

式存储在文件https://www.doczj.com/doc/d314833938.html,中。struct stu_info的定义如下:

struct stu_info {

char stu_num[12];

char name[10];

short int sex;/*0为女生,1为男生*/

char mobile_phone[12];

};

3.主要仪器设备及软件

(1)硬件:计算机、网络

(2)软件:VMWare workstation、RedHat 9.0

4.附录:程序清单

(1)程序清单4-1

#include

#include

int main(void)

{

char c;

FILE *in,*out;

if((in = fopen("file.in","r"))==NULL)

{

perror("file open error!");

exit(0);

}

out = fopen("file.out","w");

while((c = fgetc(in))!=EOF)

fputc(c,out);

fclose(in);

fclose(out);

}

(2)程序清单4-2

#include

#include

#include

int main()

{

// char block[1024];

char c;

int in, out;

int nread;

in = open("file.in", O_RDONLY);

out = open("file.out", O_WRONLY|O_CREAT, S_IRUSR|S_IWUSR);

//将注释打开,并将两条语句的后一句注释掉,重新编译执行。

// while((nread = read(in,block,sizeof(block))) > 0)

while((nread = read(in,&c,sizeof(c))) > 0)

// write(out,block,nread);

write(out,&c,nread);

close(in);

close(out);

}

(3)程序清单4-3

#include

#include

#include

#include

#include

char buf1[] = "abcdefghij";

char buf2[] = "ABCDEFGHIJ";

void err_exit(char *err_s)

{

perror(err_s);

exit(1);

}

int main(void)

{

FILE *fp;

if((fp = fopen("hole.file","w")) == NULL) err_exit("file open fail!");

if(fwrite(buf1,sizeof(buf1),1,fp)!=1)

err_exit("file write buf1 error!");

if(fseek(fp,40,SEEK_SET)==-1)

err_exit("fseek error!");

if(fwrite(buf2,strlen(buf2),1,fp)!=1)

err_exit("file write buf2 error!");

fclose(fp);

}

(4)程序清单4-4

#include

#include

#include

#include

#include

char buf1[] = "abcdefghij";

char buf2[] = "ABCDEFGHIJ";

void err_exit(char *err_s)

{

perror(err_s);

exit(1);

}

int main(void)

{

int fd;

if((fd = open("hole.file",O_WRONLY|O_CREAT/*|O_APPEND,0644*/)) == -1) err_exit("file open fail!");

if(write(fd,buf1,10)!=10)

err_exit("file write buf1 error!");

if(lseek(fd,40,SEEK_SET)==-1)

err_exit("lseek error!");

if(write(fd,buf2,10)!=10)

err_exit("file write buf2 error!");

}

(5)程序清单4-5

#include

#include

#include

int main()

{

DIR *pDir = opendir(“MyDirectory”);

struct dirent *pDirent;

struct stat vStat;

if(pDir == NULL)

{

printf(“Can’t open the directory \”MyDirectory\”);

return 1;

}

while( ( pDirent = readdir(pDir) ) != NULL)

{

lstat(pDirent->d_name, &vStat);

if( S_ISDIR(vStat.st_mode) )

printf(“Directory : %s\n”, pDirent->d_name);

else

printf(“File : %s\n”, pDirent->d_name);

}

closedir(pDir);

return 0;

}

(6)程序清单4-6

#include

#include

#include

int printDir(char *path)

{

DIR *pDir = opendir(path);

struct dirent *pDirent;

struct stat vStat;

if(pDir == NULL)

{

printf(“Can’t open the directory :%s”,path);

return -1;

}

while( ( pDirent = readdir(pDir) ) != NULL)

{

lstat(pDirent->d_name, &vStat);

if( S_ISDIR(vStat.st_mode) )

printf(“Directory : %s\n”, pDirent->d_name);

else

printf(“File : %s\n”, pDirent->d_name);

}

closedir(pDir);

return 0;

}

int main()

{

char *dirPath;

printf(“please input browse dir’s path:”);

scanf(“%s”,dirPath);

if ( printDir(dirPath) == 0 )

return 0;

else

return -1;

}

(7)程序清单4-7

/* We start with the appropriate headers and then a function, printdir,

which prints out the current directory.

It will recurse for subdirectories, using the depth parameter is used for indentation. */

#include

#include

#include

#include

#include

void printdir(char *dir, int depth)

{

DIR *dp;

struct dirent *entry;

struct stat statbuf;

if((dp = opendir(dir)) == NULL) {

fprintf(stderr,"cannot open directory: %s\n", dir);

return;

}

chdir(dir);

while((entry = readdir(dp)) != NULL) {

lstat(entry->d_name,&statbuf);

if(S_ISDIR(statbuf.st_mode)) {

/* Found a directory, but ignore . and .. */

if(strcmp(".",entry->d_name) == 0 ||

strcmp("..",entry->d_name) == 0)

continue;

printf("%*s%s/\n",depth,"",entry->d_name);

/* Recurse at a new indent level */

printdir(entry->d_name,depth+4);

}

else printf("%*s%s\n",depth,"",entry->d_name);

}

chdir("..");

closedir(dp);

}

/* Now we move onto the main function. */

int main()

{

printf("Directory scan of /home:\n");

printdir("/home",0);

printf("done.\n");

exit(0);

}

(8)程序清单4-8

/* We start with the appropriate headers and then a function, printdir,

which prints out the current directory.

It will recurse for subdirectories, using the depth parameter is used for indentation. */

#include

#include

#include

#include

#include

void printdir(char *dir, int depth)

{

DIR *dp;

struct dirent *entry;

struct stat statbuf;

if((dp = opendir(dir)) == NULL) {

fprintf(stderr,"cannot open directory: %s\n", dir);

return;

}

chdir(dir);

while((entry = readdir(dp)) != NULL) {

lstat(entry->d_name,&statbuf);

if(S_ISDIR(statbuf.st_mode)) {

/* Found a directory, but ignore . and .. */

if(strcmp(".",entry->d_name) == 0 ||

strcmp("..",entry->d_name) == 0)

continue;

printf("%*s%s/\n",depth,"",entry->d_name);

/* Recurse at a new indent level */

printdir(entry->d_name,depth+4);

}

else printf("%*s%s\n",depth,"",entry->d_name);

}

chdir("..");

closedir(dp);

}

/* Now we move onto the main function. */

int main(int argc, char* argv[])

{

char *topdir, pwd[2]=".";

if (argc != 2)

topdir=pwd;

else

topdir=argv[1];

printf("Directory scan of %s\n",topdir);

printdir(topdir,0);

printf("done.\n");

exit(0);

}

(9)程序清单4-9

/* We start by defining a RECORD structure

and then create NRECORDS versions each recording their number.

These are appended to the file records.dat. */

#include

#include

#include

#include

typedef struct {

int integer;

char string[24];

} RECORD;

#define NRECORDS (100)

int main()

{

RECORD record, *mapped;

int i, f;

FILE *fp;

fp = fopen("records.dat","w+");

for(i=0; i

record.integer = i;

sprintf(record.string,"RECORD-%d",i);

fwrite(&record,sizeof(record),1,fp);

}

fclose(fp);

/* We now change the integer value of record 43 to 143

and write this to the 43rd record's string. */

fp = fopen("records.dat","r+");

fseek(fp,43*sizeof(record),SEEK_SET);

fread(&record,sizeof(record),1,fp);

record.integer = 143;

sprintf(record.string,"RECORD-%d",record.integer);

fseek(fp,43*sizeof(record),SEEK_SET);

fwrite(&record,sizeof(record),1,fp);

fclose(fp);

/* We now map the records into memory

and access the 43rd record in order to change the integer to 243

(and update the record string), again using memory mapping. */

f = open("records.dat",O_RDWR);

mapped = (RECORD *)mmap(0, NRECORDS*sizeof(record),

PROT_READ|PROT_WRITE, MAP_SHARED, f, 0);

mapped[43].integer = 243;

sprintf(mapped[43].string,"RECORD-%d",mapped[43].integer);

msync((void *)mapped, NRECORDS*sizeof(record), MS_ASYNC);

munmap((void *)mapped, NRECORDS*sizeof(record));

close(f);

exit(0);

linux实验报告

实验一 实验名称:Linux 基本命令的使用 实验时间:2学时 实验目的:熟练使用Linux字符界面、窗口系统的常用命令。 实验内容 (一)Linux操作基础 1.重新启动linux或关机(poweroff,shutdown,reboot,init 0,init 6) 2.显示系统信息(uname),显示系统日期与时间,查看2014年日历(date,cal) ①uname:查看系统与内核相关信息 uname -asrmpi 参数: -a :所有系统相关的信息; -s: 系统内核名称; -r: 内核的版本; -m:本系统的硬件名称,如i686或x86_64; -p: CPU的类型,与-m类似,只是显示的是CPU的类型; -i :硬件的平台(ix86). ②date:显示日期的命令 ③cal:显示日历 单独cal:列出当前月份的日历 cal 2014:列出2014年的日历 cal 5 2014:列出2014年五月的目录 3.使用帮助命令(man,help) ①man:是manual(操作说明)的简写,是在线帮助系统 man后跟某个命令就会详细说明此命令,例如:man man就会详细说明man 这个命令的用法; ②help:也是帮助命令,一般会在命令后,例如:cd --help 就会列出cd命令的使用说明。 4.查看当前登陆用户列表(who),显示当前用户(whoami) ①who:显示目前已登录在系统上面的用户信息; ②whoami:查询当前系统账户 5.建立一个新用户mytest,设定密码(useradd,passwd) ①useradd mytest(建立新用户mytest);

Linux实验项目四--shell编程

实验项目四shell编程 一、实验目的 (1)了解shell的作用和主要分类; (2)掌握bash的建立和执行方式; (3)掌握bash的基本语法; (4)学会编写shell脚本。 二、实验内容 (1)shell脚本的建立和执行; (2)历史命令和别名定义; (3)shell变量和位置参数、环境变量; (4)bash的特殊字符; (5)一般控制结构; (6)算术运算及bash函数。 三.实验软件 VMWare Workstation 5.0; Red hat linux 9.0; 四.实验主要步骤 1、利用vi建立一个脚本文件,其中包括date,cal,pwd,ls等常用命令。然后以不同方式执行脚本。 2、运行history命令,配置历史命令环境。 3、体会bash的命令补齐功能。 4、用alias定义别名,然后执行。 5、编辑如下脚本进行执行: 6、编写一个shell脚本,求斐波那契数列的前10项及总和。 7、设计一个程序cuts,它由标准输入读取数据,获取由第一个参数n和第二个参数m所限定范围的数据,n和m都是整数,即从输入的字符串中抽取第n个字符至第m个字符之间的所有字符(包括这两个字符)。例如: $cuts 11 14 tis is a test of cuts program (输入) tst(显示结果

五.实验结果 1、利用vi建立一个脚本文件,其中包括date,cal,pwd,ls等常用命令。然后以不同方式执行脚本。 2、运行history命令,配置历史命令环境。 3、体会bash的命令补齐功能。 双击tab键,能列出所有符合条件的结果,只有唯一结果时单击可补全。 4、用alias定义别 名,然后执行。 5、编辑如下脚本进行执行:

Linux实验报告(实验四) shell编程实验

实验四 shell编程实验(二) 班级:姓名:学号:上机时间:年月日 任课教师:实验教师:实验成绩: 一、实验目的 综合Linux常用命令和vi编辑器的使用,熟练掌握shell脚本编程。 二、实验注意事项 实验室内的实验环境与系统是共用设施,请不要在系统内做对系统或对其他用户不安全的事情。要求每个同学登录后系统后,要在自己的家目录下创建一个属于自己的子目录(以自己(拼音)名字或学号)。以后所有工作都要在自己的目录内进行。建议以后的实验都在同台计算机上做,这样可以保持连续性。 三、实验内容 1. 编写一个脚本,求斐波那契数列的前10项及总和。 num1=1 num2=1 echo -n “$num1+$num2” sum=2 for((i=1;i<=8;i++)) do tmp=$(expr $num1 + $num2) echo -n “+$tmp” ((num1=num2)) ((num2=tmp)) sum=$(expr $sum + $tmp) done echo “=$sum” 2.编写一个脚本,求一个数的逆序。 echo -n please input num: read num echo -n The num is while [ $num -gt 0 ] do sd=$(($num % 10)) echo -n "$sd" num=$(($num/10)) done echo

3.设计一个Shell程序,在用户主目录下建立一个userdata目录,在此目录下再建立5个目录,即user1~user5,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。(注意:最后删除自己所建立的目录,恢复原样,以便后面同学做此实验) mkdir -m 754 /home/userdata i=1 temp=/home/userdata/user while[ $i -le 5 ] do mkdir -m 754 $temp$i let”i=i+1”# done 4.用Shell编程,判断一文件是不是普通文件,如果是将其拷贝到/home/student/test 目录下,用命令查看test目录内容,最后再删除test目录。 mkdir -m 777 /home/test echo “Input file name:” read FILENAME if [ -f “$FILENAME” ] then cp $FILENAME /home/test ls /home/test cd test rm $FILENAME cd . ls else echo”The FILENAME is not a regular file!” fi 5.编程实现简单计算器。要求用户输入一个表达式并输入结果,程序会判断用户输入的结果是否正确,并给出提示。直到用户输入‘q’时,才退出执行。 参考程序: #!/bin/bash #fileName:first #note:This is the first title #function:input an expretion and the answer, I will tell you right or wrong # You can try it as many times as you like. echo Hello! @_@ echo Welcom to the calculate testing! echo You can input an expretion such as 2*2 or 3+1, and input the answer echo I will tell you whether you are right or wrong. echo You can input 'q' to exit.

实验四同步与互斥Linux实验报告材料

实验四同步与互斥 【实验目的和要求】 1、掌握进程(线程)的同步与互斥。 2、掌握生产者消费者问题的实现方法。 3、掌握多线程编程方法。 【实验容】 实现生产者消费者问题 1、有一个仓库,生产者负责生产产品,并放入仓库,消费者会从仓库中拿走产品(消费)。 2、仓库中每次只能入一个(生产者或消费者)。 3、仓库中可存放产品的数量最多10个,当仓库放满时,生产者不能再放入产品。 4、当仓库空时,消费者不能从中取出产品。 5、生产、消费速度不同。 【实验原理】 1、信号量mutex提供对缓冲池访问的互斥要求并初始化为1,信号量empty和 full分别用来表示空缓冲项和满缓冲项的个数,信号量empty初始化为n,信号量full初始化为0。 2、定义如下结构及数据: 定义缓冲区的数据类型:typedef int buffer_item; 缓冲区:buffer_item buffer[BUFFER_SIZE];

对缓冲区操作的变量:int in,out; 信号量mutex提供了对缓冲池访问的互斥要求:pthread_mutex_t mutex; 信号量empty和full分别表示空缓冲顶和满缓冲顶的个数:sem_t empty,full; 可以设定生产者的生产速度及消费者的消费速度:int pro_speed,con_speed; 对缓冲区操作的自增函数:#define inc(k) if(k < BUFFER_SIZE) k = k+1;else k=0 3、并定义了如下实现问题的函数模块: 将生产的产品放入缓冲区: int insert_item(buffer_item item) 从缓冲区移走一个产品: int remove_item(buffer_item *item) 生产者进程:void *producer(void *param) 消费者进程:void *consumer(void *param) 生产者结构进程消费者结构进程 【程序代码】 //sx.c #include

LINUX实验报告

实验报告 ( 2014/ 2015 学年第一学期) 课程名称操作系统A 实验名称文件系统 实验时间2014 年12 月8 日指导单位计算机学院计算机科学与技术系 指导教师徐鹤 学生姓名王生荣班级学号B12040809 学院(系) 计算机学院专业软件工程

实验名称文件系统指导教师徐鹤 实验类型设计实验学时 2 实验时间2014.12.08 一、实验目的和要求 1. 学习LINUX系统下对文件进行操作的各种命令和图形化界面的使用方法。 2. 深入学习和掌握文件管理系统的基本原理和LINUX等操作系统下常用的系统调用,编写一个使用系统调用的例程。 3.实现一个文本文件的某信息的插入和删除 4.实现一个记录文件的某记录的插入和删除 二、实验环境(实验设备) Windows XP + VMWare + RedHat Linux 8

三、实验过程描述与结果分析 1. 目录/proc下与系统相关的文件和目录 (1) /proc/$pid/fd:这是一个目录,该进程($PID号码进程)每个打开的文件在该目录下有一个对应的文件。 例如:#ls /proc/851/fd 0 1 2 255 这表示,851号进程目前正在使用(已经打开的)文件有4个,它们的描述符分别是0、1、2、255。其中,0、1、2 依次分别是进程的标准输入、标准输出和标准错误输出设备。 (2)/proc/filesystems:该文件记录了可用的文件系统类型。 (3)/proc/mounts:该记录了当前被安装的文件系统信息 例如:#cat /proc/mount (4)/proc/$pid/maps:该文件记录了进程的映射内存区信息。 例如:#cat /proc/851/maps 2.常用命令讲解 ls 命令 用来查看用户有执行权限的任意目录中的文件列表,该命令有许多有趣的选项。例如: $ ls -liah * 22684 -rw-r--r-- 1 bluher users 952 Dec 28 18:43 .profile

linux操作系统实验报告

LINUX 操作系统实验报告 姓 名 班级学号 指导教师 2011 年 05月 16 日 实验一 在LINUX 下获取帮助、Shell 实用功能实验目的: 1、掌握字符界面下关机及重启的命令。 2、掌握LINUX 下获取帮助信息的命令:man 、help 。 3、掌握LINUX 中Shell 的实用功能,命令行自动补全,命令历史记录,命令的排列、替半径标式,为线敷设资料试案;过关运行要避高中资要求电

换与别名,管道及输入输出重定向。 实验内容: 1、使用shutdown命令设定在30分钟之后关闭计算机。 2、使用命令“cat /etc/cron.daliy”设置为别名named,然后再取消别名。 3、使用echo命令和输出重定向创建文本文件/root/nn,内容是hello,然后再使用追加重定向输入内容为word。 4、使用管道方式分页显示/var目录下的内容。 5、使用cat显示文件/etc/passwd和/etc/shadow,只有正确显示第一个文件时才显示第二个文件。 实验步骤及结果: 1.用shutdown命令安全关闭系统,先开机在图形界面中右击鼠标选中新建终端选项中输 Shutdown -h 30 入命令 2、使用命令alias将/etc/cron.daliy文件设置为别名named,左边是要设置的名称右边是要更改的文件。查看目录下的内容,只要在终端输入命令即可。取消更改的名称用命令命令:在命令后输入要取消的名称,再输入名称。 unalias 3.输入命令将文件内容HELLO重定向创建文本文件/root/nn,然后用然后再使用追加重定向输入内容为word。步骤与输入内容HELLO一样,然后用命令显示文件的全部内容。 4.使用命令ls /etc显示/etc目录下的内容,命令是分页显示。“|”是管道符号,它可以将多个命令输出信息当作某个命令的输入。

linux操作系统实验报告

LINUX操作系统实验报告 姓名 班级学号 指导教师 2011 年 05月 16 日 实验一在LINUX下获取帮助、Shell实用功能 实验目的: 1、掌握字符界面下关机及重启的命令。 2、掌握LINUX下获取帮助信息的命令:man、help。 3、掌握LINUX中Shell的实用功能,命令行自动补全,命令历史记录,命令的排列、替

换与别名,管道及输入输出重定向。 实验容: 1、使用shutdown命令设定在30分钟之后关闭计算机。 2、使用命令“cat /etc/cron.daliy”设置为别名named,然后再取消别名。 3、使用echo命令和输出重定向创建文本文件/root/nn,容是hello,然后再使用追加重定向输入容为word。 4、使用管道方式分页显示/var目录下的容。 5、使用cat显示文件/etc/passwd和/etc/shadow,只有正确显示第一个文件时才显示第二个文件。 实验步骤及结果: 1.用shutdown命令安全关闭系统,先开机在图形界面中右击鼠标选中新建终端选项中输入 命令Shutdown -h 30 2、使用命令alias将/etc/cron.daliy文件设置为别名named,左边是要设置的名称右边是要更改的文件。查看目录下的容,只要在终端输入命令即可。取消更改的名称用命令unalias 命令:在命令后输入要取消的名称,再输入名称。 3.输入命令将文件容HELLO重定向创建文本文件/root/nn,然后用然后再使用追加重定向输入容为word。步骤与输入容HELLO一样,然后用命令显示文件的全部容。 4.使用命令ls /etc显示/etc目录下的容,命令是分页显示。“|”是管道符号,它可以将多个命令输出信息当作某个命令的输入。

实验四 Linux的文件处理

实验四Linux的文件处理 1.目的要求 (1)学习和掌握gcc等Linux的开发调试环境。 (2)学习并掌握Linux的文件操作。 (3)编写并实现“学生管理系统”程序。 2.实验内容 (1)文件底层系统调用实验 ●使用vi将程序清单4-1和4-2的程序输入,并在当前目录下创建文件“file.in”和文 件“file.out”,尽可能的使文件“file.in”大一些。 ●利用gcc分别编译这两个程序,写出编译命令和执行结果;如果不成功,尝试利用 gdb调试。 实现将file.in中的内容复制到file.out中; ●仔细观察这两个程序,比较标准C的文件操作和Linux的系统调用open、read、 write等的使用区别。 _两者的描述符不一样,写入和读入调用的函数也是不一样,一个是底层系统调用,一个是库函数,带的参数也不一样,方法大致是一致的 ●按照说明重新修改程序4-2,并使用time命令察看程序执行的时间效率上有何区别。 分别是注释前和注释后的运行时间 ●输入、编译并运行程序4-3和4-4,写出执行结果,并比较他们fseek和lseek在使 用方法上的异同。 创建了一个名为hole.file的文件文件的内容是、 内容无差异

(2)目录信息的单层浏览 ●使用vi将程序清单4-5和4-6程序输入。 ●利用gcc分别编译这两个程序,写出编译命令和执行结果;如果不成功,尝试 利用gdb调试。 搜索Mydirection目录里的内容; ●仔细观察这两个程序,比较它们的区别。 后者是封装函数,方便使用而且不需要知道原理; (3)录信息的完整浏览 ●使用vi将程序清单4-7和4-8程序输入。 ●利用gcc分别编译这两个程序,写出编译命令和执行结果;如果不成功,尝试 利用gdb调试。 4_7.:

实验四 Linux下的C语言编程

实验四Linux下的C语言编程 实验类别:设计型实验时数:6学时 开课单位:计算机学院计算机科学与技术系实验地点:健翔校区计算中心 一、实验目的 通过本实验练习,使学生掌握有关文件管理与文件操作的内容。首先要熟悉在LINUX系统下文件系统的构建方法;其次要熟练掌握在LINUX 环境下用C语言进行高级编程的方法(即有关文件操作的系统调用的使用),进而充分了解LINUX文件系统中shell命令的实现原理以及它们用到的系统调用。 二、实验环境 操作系统:任何Unix/Linux及Sun Solaris 或windows 系列 应用系统:gcc编译器。若OS为windows系列,则还需相应的模拟环境 三、预备知识 1、关于系统调用和库函数 C语言支持一系列的库函数的调用,其中最基本的是studio库函数。事实上,库函数只是C语言在较高层次上调用的方式,系统调用是更低 层次的与C语言的界面,是内核提供给用户调用的函数。 2、L INUX环境下系统调用和库函数的异同 ⑴C程序使用系统调用的语句和调用库函数的语句形式完全相同,但是 二者运行的环境和运行机制截然不同。 ⑵从运行环境来看,库函数使用依赖于所运行的用户环境,程序调用库 函数时,它运行的目标代码是属于程序的,程序处于“用户态”执行; 而系统调用的使用不依赖于它运行的用户环境,是LINUX内核提供

的低层服务,系统调用时所执行的代码是属于内核的,程序处于“核 心态”执行。 ⑶程序库函数的调用最终还是要通过LINUX系统调用来实现,库函数 一般执行一条指令,该指令(操作系统陷阱operating system trap) 将进程执行方式变为核心态,然后使内核为系统调用执行代码。 四、实验内容 本实验要求在LINUX/UNIX环境下用C语言编写三个具体的SHELL 命令,基本涉及了LINUX/UNIX文件系统中较为常用的有关文件操作的系统调用。内容如下: ⑴编程实现copy命令,执行格式:copy file1 file2 file3 功能:将file1、file2两文件的内容合并拷入file3中,其中间应有30个字节的空洞。 程序可能涉及到的系统调用:read(), write(), open(), creat(), close(), lseek() ⑵编程实现renam(即LINUX下的rename)命令,功能是实现文件的重命名。 执行格式:renam filea fileb; 其中filea为源文件,fileb为目标文件。程序执行时应显示出命令行的所有参数,并给出重命名前后两个文件的大小、索引节点号及最近一次状态改变的时间。 程序可能涉及到的系统调用:read(), write(), open(), stat(), close(), link(), unlink() ⑶编程实现:从A文件某处(任意)读取n个字符(连续),写入B文件某 个位置。 执行格式:a.out A x n B y;

LINUX实验四报告

一、实验目得 掌握Linux系统中常用命令得作用与命令中各选项得作用、 二、实验环境 安装了fedora17系统得计算机一台 三、实验过程(实验步骤、记录、数据、分析、结果) 1.查瞧当前系统下用户Shell定义得环境变量得值。 2.定义变量AK得值为200,并将其显示在频幕上。 3.定义变量AM得值为100,并使用test命令语句比较其值就是否大于150。 4.创建一个简单得Shell程序,其功能为显示计算机主机名以及显示系统日期与时间、 5.使用for语句创建一个shell程序,其功能为1+2+3+4+5+……n、 6.使用until语句创建一个shell程序,其功能为计算1~10得平方。 按步骤依次写出命令包括运行结果(可截屏) 1。查瞧当前系统下用户Shell定义得环境变量得值、 2. 定义变量AK得值为200,并将其显示在频幕上、

3、定义变量AM得值为100,并使用test命令语句比较其值就是否大于150、 4。创建一个简单得Shell程序,其功能为显示计算机主机名以及显示系统日期与时间。

5、使用for语句创建一个shell程序,其功能为1+2+3+4+5+……n、

6.?使用until语句创建一个shell程序,其功能为计算1~10得平方。

四、实验总结 (掌握了什么知识,实验中遇到得问题及解决方法) 在实验中,我掌握了创建shell程序得语法:#!/bin/bash与chmod u+x 文件名 也了解了shell定义得环境变量,并且掌握了test语句得用法,数字得比较,循环控制中得for语句、un til语句得用法。 实验4 实验名Linux常见命令

linux实验报告四

实验报告 一、实验名称:实验4 bash常用功能 二、实验目的及要求 掌握bash的基本操作方式,包括tab键、别名及历史命令的使用掌握简单的shell脚本编辑方法。 三、实验环境 硬件环境:计算机 软件环境:linux操作系统 四、实验内容及方法 bash常用功能 1 将命令”ls -l|more”的别名设为lm 2 列出目前系统中有哪些别名? 3 列出我们曾经执行过的命令。 4 列出目前最近的5条命令 5 执行第10笔命令 6 列出系统中以c为开头的命令 7 使用上下箭头调用刚才执行过的命令 8 列出当前目录下以.bash开头的所有文件 9 列出目前的shell环境下的所有环境变量与其内容 10 建内容为date的shell文件my.sh,并执行该文件 五、实验原理及实验步骤 1 将命令”ls -l|more”的别名设为lm alias lm=’ls -l|more’ 2 列出目前系统中有哪些别名? alias 3 列出我们曾经执行过的命令。 history 4 列出目前最近的5条命令 history 5 5 执行第10笔命令 !10 6 列出系统中以c为开头的命令 c[tab][tab] 7 使用上下箭头调用刚才执行过的命令 ↑↓ 8 列出当前目录下以.bash开头的所有文件 ls -al .bash[tab][tab] 9 列出目前的shell环境下的所有环境变量与其内容 env 10 建内容为date的shell文件my.sh,并执行该文件 vi my.sh 输入:date chmod 744 my.sh

./my.sh 六、实验过程及实验结果 建内容为date的shell文件my.sh,并执行该文件vi my.sh 输入:date chmod 744 my.sh ./my.sh

Linux实验四 shell编程(一)

实验四shell编程(一)

(二) SHELL中的特殊字符 1、通配符 通常的通配符有三种: * 星号,它匹配任意字符的0次或多次出现。但注意,文件名前面的圆点 (.)和路径名中的斜线(/)必须显示匹配。 ?问号,它匹配任意一个字符。 应该注意:字符 * 和?在一对方括号外面是通配符,若出现在其内部,它们就失去通配符的能力了。 !叹号,若它紧跟在一对方括号的左方括号[之后,则表示不在一对方括号中 所列出的字符。 分析:字符 * 和?在一对方括号外面是通配符,若出现在其内部,它们就失去通配符的能力了。

分析:除了file文件,其他都列出来 2、引号 在SHELL中引号分为三种:单引号、双引号、和倒引号。 (1)双引号 由双引号括起来的字符,除$、倒引号和反斜线(\)仍保留其功能外,其余字符通常作为普通字符对待。 ( 2)单引号 由单引号括起来的字符都作为普通字符出现。 (3)倒引号 分析:单引号括起来的字符都作为普通字符出现;反引号包围起来的字符串被运行 ,date显示当前的日期。 (4)反斜线

转义字符,若想在字符串中使用反斜线本身,则必须采用(\\)的形式,其中第一个反斜线作为转义字符,而把第二个反斜线变为普通字符。 (三)条件测试 1.字符串比较 = 比较两个字符串是否相等 != 比较两个字符串是否不相等 -n 判断字符长度是否大于零 -z 判断字符长度是否等于零 分析:条件测试中,字符串比较有两种方法:1、test 字符操作符字符;2[ 字符操作符字符 ],用echo $?显示结果,条件成立时,测试结果返回值为0,否则为1。上图中字符串 sss不等于ssss,返回值为1

Linux实验报告

Linux实验 一、实验目的 1. 了解Linux基本使用方法; 2. 掌握Linux基本设置方式; 3. 掌握Linux基本操作命令使用。 二、内容要求 1. 了解进程管理、文件管理与内存管理 2.掌握系统设置文件与命令 3. 熟练使用系统操作与维护命令 4. 熟练使用系统操作与维护命令 三、实验原理 Linux 系统常用命令格式: command [option] [argument1] [argument2] ... 其中option以“-”开始,多个option可用一个“-”连起来,如 “ls-l -a”与“ls-la”的效果是一样的。根据命令的不同,参数 分为可选的或必须的;所有的命令从标准输入接受输入,输出结果显示在 标准输出,而错误信息则显示在标准错误输出设备。可使用重定向功能对这 些设备进行重定向。如: ls –lh > a.txt 命令在正常执行结果后返回一个0值,如果命令出错可未完全完成,则返回 一个非零值(在shell中可用变量$?查看)。在shell script中可用此返 回值作为控制逻辑的一部分。 DSL命令操作: 帮助命令: man 获取相关命令的帮助信息 例如:man dir 可以获取关于dir的使用信息。 info 获取相关命令的详细使用方法 例如:info info 可以获取如何使用info的详细信息。 基本操作: echo 显示字符串 pwd 显示当前工作目录 ls 查看当前文件夹内容 ls -a 查看当前文件夹内容(包括隐藏项) ls -l 查看当前文件夹内容(详细) ls / 查看根目录内容 cd / 移动到根目录

pwd 显示当前工作目录 ls -al 查看根目录文件夹内容(详细情况并包括隐藏项) cd /home/dsl 回到“家”目录 pwd 显示当前工作目录 df -h 显示剩余磁盘空间,参数“-h”表示适合人读取(human readable) du -h 显示文件夹(及子文件夹)所占空间 mkdir fd0 在当前目录下创建目录fd0 touch a.txt 创建一个空文件a.txt ls / -lh > a.txt 利用重定向功能将根目录中的内容写入a.txt。 cat a.txt 显示a.txt内容 wc a.txt 显示a.txt的行数,字数与字节数 find / -name *conf 在根目录下(包括子目录)查找以conf结尾的文件 sudo mount /dev/fd0 fd0 将软盘镜像挂载到目录fd0上 cd fd0 进入软盘镜像所挂载的目录 ls -lh 查看软盘镜像中的文件 cd .. “..”表示进入上一层目录 gzip a.txt 使用gzip压缩a.txt ls -lh 查看当前文件夹 sudo cp a.txt.gz fd0/ 将a.txt复制到fd0目录下,即将其复制到软盘镜像中 sudo mv fd0/a.txt.gz ./ 将a.txt移动到当前目录下,“.”表示当前目录 sudo umount /dev/fd0 将软盘镜像卸载 ls fd0 显示fd0 目录内容 gzip -d a.txt.gz 解压缩a.txt.gz ls -lh 查看当前文件夹 权限管理: 假设当前处于/home/dsl 目录下,且有a.txt(文件)与fd0(目录),当前用户名为dsl。 sudo cat /etc/passwd 用户 sudo cat /etc/shadow 密码 sudo cat /etc/group 组 users 查看当前登录用户 sudo chmod -x fd0 更改文件夹权限 ls fd0 fd0不能被执行,则意味着无法打开! sudo chmod +x fd0 更改文件夹权限 ls fd0 fd0能被打开 sudo chown root fd0 更改目录fd0的所有者 ls -lh 注意看fd0目录的属性 sudo chown dsl:root fd0 更改目录fd0的所有者为dsl,所属组为root ls -lh 注意看fd0目录的属性 chmod a-r a.txt 现在a.txt不具有“读”权限,不能被读取

linux实验三

淮海工学院计算机工程学院实验报告书 课程名:《网络操作系统》 题目:软件包管理与进程管理 班级:网络132 学号: 姓名:

一、目的与要求 1、掌握linux软件包管理方法。 2、掌握RPM命令的使用。 3、熟悉图形模式下软件管理工具的使用。 4、掌握常用进程管理的命令。 二、实验容与题目 1、下载并安装telnet软件包(分别采用-i、-ivh)。 2、删除上述安装的软件。 3、利用rpm查询上述软件 4、校验上述文件 5. 利用图形模式下的软件包管理工具安装和删除“Eclipse”的有关软件。 6、下载并安装OpenOffice套件。 7、查看进程的统计信息(静态、动态)。 8、查看进程名中包含“con”字符串的进程信息 9、后台运行gedit软件后,并把它调入前台,然后杀死它。 10、利用crontab实现每周一、三、五的17:30时,打包备份/etc/httpd目录中的文件到你的主目录。 11、练习at、pkill、pstree等命令的使用。 12、练习YUM软件工具的使用。 三、实验步骤与源程序 1、下载并安装telnet软件包(分别采用-i、-ivh)。

2、删除上述安装的软件。 3、利用rpm查询上述软件 4、校验上述文件 5. 利用图形模式下的软件包管理工具安装和删除“Eclipse”的有关软件。 6、下载并安装OpenOffice套件。 7、查看进程的统计信息(静态、动态)。

8、查看进程名中包含“con”字符串的进程信息 9、后台运行gedit软件后,并把它调入前台,然后杀死它。 10、利用crontab实现每周一、三、五的17:30时,打包备份/etc/httpd目录中的文件到你的主目录。 11、练习at、pkill、pstree等命令的使用。 12、练习YUM软件工具的使用。 四、测试数据和实验结果 1、下载并安装telnet软件包(分别采用-i、-ivh)。

linux基础实验报告含代码

Linux基础实验

目录 实验一 (3) 实验二 (4) 实验三 (6) 实验四 (9) 实验五 (11) 实验六 (14) 实验七 (16)

实验一螺旋矩阵 一、实验目的 1.熟悉linux下c程序编写。 2.掌握Makefile编写方法。 二、实验环境和工具 Red Hat Linux 三、实验流程 1.编写螺旋矩阵程序 2.编写Makefile文件 四、实验结果 五、实验心得 通过这次实验,我熟悉了linux下c语言程序的编写,掌握了vi的一些常用操作,学会了使用gcc命令和makefile文件两种方法编译程序。同时也使我熟悉了linux里常用命令的使 用,还有,学会了挂载U盘的方法,可以很方便的往linux里传送文件。 六、关键代码 Makefile 文件 CC=gcc EXEC=juzhen OBJS=juzhen.o all:$(EXEC) $(EXEC):$(OBJS) $(CC) -o $@ $(OBJS) clean: -rm -f $(EXEC) $(OBJS)

实验二添加、删除用户 一、实验目的 1.设计一个shell程序,分组批量添加用户。 2.再设计一个批量删除用户的shell程序。 二、实验环境和工具 Red Hat Linux 三、实验流程 1.编写shell程序 2.修改文件权限 chmod +x addusers 3.运行脚本 四、实验结果 添加用户: 删除用户:

五、实验心得 通过本次实验,我了解了shell脚本编程的方法和其语法规则。掌握了使用shell脚本程序添加、删除用户的方法。需要注意的是:shell脚本直接用vi编写,要特别注意空格。 六、关键代码 添加用户: 删除用户:

Linux实验

实验二 1. 帮助命令的使用: 1) 查看ls命令的手册页,并翻页至最后,而后退出; man ls (PageDOwn和PageUp用于翻页) 2) 查看ls命令的信息页,翻页至最后并退出; info ls (PageDown和PageUp用于翻页,q用于退出) 2. 安装VMWaretools 1)登录root用户至其主目录;(如果已经登录可省略此步) 2) 打开终端后在[root@localhost ~]#后面输入自己名字后开始安装 3. 更改文件的属性,拥有者以及所属组 1)用命令列出根目录下的目录及文件; 3)用命令列出install.log文件的详细信息 ls -l install.log 4)用命令把install.log文件的用户组更改为自己安装时创建的用户组chgrp -R user install.log (-R用于递归,即文件内的所有子目录的用户组都更改,注意不要少了user) 5)用命令把install.log文件的拥有者改为自己安装时创建的用户 chown user install.log 6)用命令同时把install.log文件的拥有者和用户组更改为root chown root:root install.log 7)用命令把install.log文件的属性更改为-rw-rw-rw- chmod a+rw install.log 8)用命令把install.log文件的属性恢复到初始状态 chmod u=rw,g=r,o=r install.log 实验三文本及目录相关命令的使用 上机实验内容: 1. 目录操作: 1) 用命令列出根目录下的目录及文件; ls 2) 用一条命令创建目录/root/test/x/y/z; mkdir -p /root/test/x/y/z (-p是目录的递归) 3) 查看当前目录下的所有文件,要求显示其详细信息; ls -al 4) 切换目录至/root/test/x/y,并删除目录z; cd /root/test/x/y(这是绝对路径的写法) cd test/x/y (这是相对路径的写法) rmdir z 5) 切换回root用户的主目录,并使用一条命令删除/root/test, /root/test/x,/root/test/x/y; cd ~ 或者cd /root

Linux实验报告

燕山大学 Linux技术上机实验指导

实验一Linux系统安装与简单配置 一、实验目的 1.掌握Linux系统安装的分区准备。 2.掌握Linux系统的安装步骤。 3.掌握Linux系统分区的挂载和卸载。 4.掌握Linux系统的启动和关闭操作。 二、实验内容 1.安装VMware虚拟机,设置光盘驱动器,为Linux系统安装做准备。2.在虚拟机下安装Linux操作系统(如Ubuntu桌面版本)。 3.配置Linux系统运行环境。 4.利用空闲分区创建新的Linux系统分区。 5.将新的Linux系统分区挂载到系统中;卸载新挂载的分区,重新挂载到目录树中的其他位置。 三、主要的实验步骤 1.制定安装系统的分区计划。 2.配置光驱引导镜像文件iso,启动系统,开始安装过程。 3.根据安装计划,对磁盘空间进行分区设置。 4.根据系统安装指导,完成Linux系统的安装过程。 5.安装成功后,退出系统,重新启动虚拟机,登陆Linux操作系统。6.对Linux系统进行配置,如网络设备等。 7.利用磁盘使用工具和mount,将新创建的Linux系统分区挂载到系统中。将新挂载的分区卸载,并重新挂载到目录树的其他位置。

实验二Linux常用命令使用 一、实验目的 1.掌握Linux一般命令格式。 2.掌握有关文件和目录操作的常用命令。 3.熟练使用man命令。 二、实验内容 1.熟悉cd、date、pwd、cal、who、echo、clear、passwd等常用命令。2.在用户主目录下对文件进行操作:复制一个文件、显示文件内容、查找指定内容、排序、文件比较、文件删除等。 3.对目录进行管理:创建和删除子目录、改变和显示工作目录、列出和更改文件权限、链接文件等。 4.利用man命令显示date、echo等命令的手册页。 5.显示系统中的进程信息。 三、主要实验步骤 1.登陆进入系统,修改个人密码。 2.使用简单命令:date、cal、who、echo、clear等,了解Linux命令格式。

实验四 Linux下的C语言编程

实验四Linux 下的 C 语言编程 四、实验内容 本实验要求在LINUX/UNIX环境下用C语言编写三个具体的SHELL命令,基本涉及了LINUX/UNIX文件系统中较为常用的有关文件操作的系统调用。内容如下: 1、编程实现 copy 命令。执行格式:copy file1file2file3 功能:将 file1、file2 两文件的内容合并拷入 file3 中,其中间应有 30 个字节的空洞(调试成功后可将空洞调大到几十MB)。 程序执行后用 du 命令显示其占用磁盘空间,观察其大小,分析原因。 程序可能涉及到的系统调用: read(), write(), open(), creat(), close(), lseek() #include #include #include #include #include #include #include int main(int argc, char const *argv[]) { int file1,file2,file3; if (argc!= 4) { printf("Usage: copy file1 file2 file3\n"); exit(1); } file1=open(argv[1],O_RDONLY); file2=open(argv[2],O_RDONLY); file3=open(argv[3],O_CREAT|O_RDWR,S_IRWXU); int n; char buf[1024];

Linux实验报告(2)

Linux 实验报告姓名 黄芳恺 班级软件工程114 学号119074258 指导教师阮越

目录 实验一 Linux基本命令的使用 实验二简单Shell程序设计 实验三 Linux下简单C程序设计与文件操作实验四 Linux下进程操作与进程间通信 实验五 Linux线程的使用 实验六 Linux进程间的IPC 实验七 Linux下访问Mysql数据库 实验八 Linux下网络编程 练习题: grep、 bash、生产者消费者

实验一 Linux基本命令的使用 1、实验目的 学习和掌握 Linux 的基本命令。 2、实验内容和步骤 步骤 1:以user_login用户身份并使用telnet登录Linux服务器,按照提示创建自己的账户和口令。 步骤 2 :使用新创建的用户账户和口令登录Linux系统,察看登录后的界面。 步骤 3:使用 pwd 命令察看当前的工作目录,然后用ls命令查看当前目录下的内容,尝试使用 -a,-l,-F,-A,-lF等不同选项并比较不同之处。 -a do not ignore entries starting with -I, --ignore=PATTERN do not list implied entries matching shell PATTERN -l use a long listing format -F, --classify append indicator (one of */=>@|) to entries -A, --almost-all do not list implied . and .. -lF ignore file

(完整版)Linux操作系统实验指导书-4磁盘

Linux 操作系统》实验指导书 实验四 实验题目:磁盘管理 实验目的:熟悉并掌握磁盘管理常用命令;掌握利用虚拟机增加新硬盘,使用fdisk对磁盘分区操作;熟悉和了解磁盘显示信息内容;掌握使用卷组进行磁盘管理操作。 实验类型:综合 实验要求:必修 仪器设备:计算机 实验内容、方法、步骤: 1,使用GUI方式建立用户userOI,具体属性如下: 登录shell为/bin/bash,主目录/userOI,用户id: 520,用户组grpOl 2,使用修改配置文件方式建立用户user02,具体属性如下: 登录shell 为/bin/bash,主目录/user02,用户id: 530,用户组grp02 3,使用命令方式建立用户user03,具体属性如下: 登录shell为/bin/bash,主目录/user03,用户id: 530,用户组grp03,附属组grp02 4,对user01, user02, user03,设置密码并登录。

一、磁盘和分区信息查看 1 fdisk查看当前系统硬盘及分区情况,在实验报告中说明当前的磁盘容量,分区数量、名 称和大小,分区挂载点,分区使用方式(卷组名称、逻辑卷名称和大小)。 步骤:fdisk - 2显示当前文件系统使用情况,在实验报告中说明当前主要文件系统信息及使用情况(包括主要文件系统名称、挂载点、容量、使用量及百分比等) 步骤:df — 二、添加新硬盘 内容:关闭虚拟机操作系统,添加2块硬盘,大小分别为5G和10G。开机后查看新硬盘 是否成功添加。 步骤: 1 关机:in it 0 2添加新硬盘:右键单击虚拟机,选择setting (设置)。在Add中按照要求添 加2块新硬盘(HardDisk ) 3开机后,打开终端。输入命令fdisk -或Is /dev/sd*查看新硬盘是否添加成功。 三、对新添加硬盘进行分区 内容: 1.将第二块硬盘sdb分区(5G),要求分区1 (sdb1 )为主分区,类型为swap (82),大小为500M ;分区2 (sdb2)为主分区,类型为linux (83),大小为 2G;分区3为扩展分区(sdb3),大小为sdb所有剩余容量;分区5为逻辑分区,类型为lvm (8e),大小为2G。分区后,查看sdb新添加所有分区,将截图添加到实验报告 中。 raot^AS5:jid?v _賀 中件? 狒(曰音百?池①标符? 苕时3 Last cylludAT or raize or taizeM or zeL (307 6S2 default 65^)i052N Comaomd (n for help)s □ Co>niaand action 1 logical(5 or over) p prlnsr partilion (1-4) 1 First cylinder (307-652. defoul t307)t defautt vftlue 307 Laat cylinder or H-size or i-si or "bsl sei1307 052,default C52)s^2G

相关主题
文本预览
相关文档 最新文档