欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2023年Linu程序设计实验报告大作业.pdf

    • 资源ID:94461518       资源大小:3.44MB        全文页数:37页
    • 资源格式: PDF        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2023年Linu程序设计实验报告大作业.pdf

    实 验 报 告 课 程 名 称:_ LI N U X程 序 设 计 _学 院:计 算 机 学 院 _专 业:软 件 工 程 班 级:14 3姓 名:张 正 银 学 号:一 2 0 2 3 年 1 月 1 日 山 东 科 技 大 学 教 务 处 制 实 验 报 告组 别 姓 名 张 正 馄 同 组 实 验 者 实 验 项 目 名 称 实 验 一 熟 悉 L in u x命 令 实 验 日 期 第 1 1 周 周 四 9,10 节 教 师 评 语 实 验 成 绩 指 导 教 师 一、实 验 目 的 熟 悉 并 掌 握 Linux操 作 系 统 基 本 命 令 二、常 用 的 普 通 命 令 1.了 解 系 统 的 u name,dat e,w命 令 kunvm:$uname-aLinux vn 4.4.0-31-generic#50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Ltnuxkunvm:-$date2016年 12月 28日 星 期 三 16:53:36 CSTkunvm:$w16:53:42 up 12 min,1 user,load average:0.06,0.21,0.28USER TTY FROM LOGIN IDLE JCPU PCPU WHATkun tty7:0 16:41 12:35 4.91s 0.53s/sbin/upstart kunvn:$|2.了 解 文 献 的 Is和 f i Ie命 令 kunvn:-$IsDesktop Downloads Learn Pictures TemplatesDocuments examples.desktop Music Public Videoskunvm:-$file examples.desktopexamples.desktop:UTF-8 Unicode textkunvm:$3.ca t,1 e ss,head,t ail,nb wc 等 命 令 的 使 用kunvm:-$cat my.c#include#include int main()printf(*ptd:%dnH,getpid();printf(ppid:%dnn,getppid();return 0;kunvm:-$tail-n 3 my.cp tntf(pptd:%dn,getppid();return 0;)kunvm:$head-n 3 my.c#include#include kunvn:$nl my.c1#Include 2/Include 34 int main()5 printf(,pid:%dnH,getpid();6 printf(pptd:%dn,getppid();7 return 0;8 kunvm:-$wc my.c8 14 140 my.c4.文 本 内 容 查 找 gre p 命 令 kunvn:$cat my.c|grep include#include winclude 5.文 献 权 限 的 修 改 chm o d,ch o wn,uma s kcunvn:-$Is-I my.c-rw-r-r-1 kun kun 140 12月 28 17:01 ny.ccunvn:*$sudo chmod 777 my.c:sudo password for kun:unvn:$Is-I my.c rwxrwxrwx 1 kun kun 140 12月 28 17:01 ny.ccunvn:-$sudo chown root:root my.ccunvm:-$Is-I my.c-rwxrwxrwx 1 root root 140 12月 28 17:01 my.ccunvn:-$|6.文 献 夹 操 作:mkd i r,rmd i rkunvm:5 IsDesktop Downloads Learn Pictures TemplatesDocuments examples.desktop Music Public Videoskunvm:$mkdtr dtrlkunvm:$IsDesktop 1 Documents examples.desktop)Music Public Videosdtrl 1 Downloads Learn Pictures Templateskunvm:5 rmdir dtrl/kunvm:5 IsDesktop Downloads Learn Pictures TemplatesDocuments examples.desktop Music Public Videoskunvm:*$三、用 户 和 组 的 管 理 管 理 1.探 究 用 户 配 置 文 献/e t c/passwd,/et c/s h adowkunvm:-*$sudo tail-n 5/etc/passwdpulse:x:117:124:PulseAudto daemon,:/var/run/pulse:/btn/falsertkit:x:118:126:RealttmeKit,:/proc:/bin/falsesaned:x:119:127:/var/ltb/saned:/btn/falseusbmux:x:120:46:usbmux daemon,f:/var/ltb/usbmux:/btn/falsekun:x:1000:10OO:kun,:/home/kun:/bin/bashk u n 0 v m:sudo tail-n 5/etc/shadowpulse:*:17001:0:99999:7:rtkit:*:17001:0:99999:7:saned:*:17001:0:99999:7:usbmux:*:17001:0:99999:7:kun:$6$/4hN636M$3yCKhbKmCQ23wNlF01Zh.mtkm3.R/Yxr3IXk2ehFoYsNUMR7w7ZldSnce75s6kbMVwidgP8r5IBLz.:17150:0:99999:7:::kunvn:$|/e tc/p a ssw d是 用 户 数 据 库,其 中 的 域 给 出 了 用 户 名、加 密 口 令 和 用 户 的 其 他 信 息./e tc/s h a d o w是 在 安 装 了 影 子(sh a dow)口 令 软 件 的 系 统 上 的 影 子 口 令 文 献。影 子 口 令 文 献 将/etc/p a ssw d文 献 中 的 加 密 口 令 移 动 到/etc/shadow中,而 后 者 只 对 超 级 用 户(r o o t)可 读。这 使 破 译 口 令 更 困 难,以 此 增 长 系 统 的 安 全 性。2.探 究 组 配 置 文 献 组 的 配 置 文 献/etc/g roup,/e t c/gsh a d o wkunvm:-$sudo tail-n 5/etc/grouppulse-access:x:125:rtkit:x:126:saned:x:127:kun:x:1000:sambashare:x:128:kunkunvm:-$sudo tail-npulse-access:!:rtkit:!:saned:!:kun:!:sambashare:!:kunkunvm:-$5/etc/gshadow3.i d,w h o,wh o ami,g r o u p s 等 命 令 kun(bvm:*$iduid=1000(kun)gid=1000(kun)groups=10O0(kun),4(adm),24(cdrom),27(sudo),3O(dip),46(plugdev),113(Ipadmtn),128(sambashare)kunvm:$whokun tty7 2016-12-29 10:05(:0)kun0vm:$whoamtkunkunvm:-$groupskun adm cdrom sudo dip plugdev Ipadmtn sambasharekunVE:$四、文 献 打 包 与 压 缩 1.ta r压 缩 和 解 压 kunvm:-$IsDesktop Downloads Learn Pictures TemplatesDocuments examples.desktop Music Public Videoskunvn:-$tar-zcvf learn.tar.gz Learn/Learn/Learn/6-2.cLearn/6-4Learn/6-2.oLearn/6-3.oLearn/6-4.oLearn/6-l.cLearn/6-l.oLearn/6-4.cLearn/6-3.ckunvm:-$IsDesktopDocumentsDownloadsexamples.desktopLearnlearn.tar.gzMusic PublicPictures TemplatesVideos,IsDesktop Downloads Learn Music Public VideosDocuments examples.desktop learn.tar.gz Pictures Templateskunvm:$tar-zxvf learn.tar gzLearn/Learn/6-2 cLearn/6-4Learn/6-2 0Learn/6-3 0Learn/6-4 0Learn/6-1 cLearn/6-1 0Learn/6-4 cLearn/6-3 c五、软 件 包 管 理 1.安 装 软 件 treekunvm:*$sudo apt-get install treeReading package lists.DoneBuilding dependency treeReading state information.DoneThe following NEW packages will be installed:tree0 upgraded,1 newly installed,0 to remove and 11 not upgraded.Need to get 40.6 kB of archives.After this operation,138 kB of additional disk space will be used.Get:1 http:/xenial/universe amd64 tree amd64 1.7.0-3 40.6 kBFetched 40.6 kB in 2s(18.5 kB/s)Selecting previously unselected package tree.(Reading database 216049 files and directories currently installed.)Preparing to unpack./tree_1.7.0-3_amd64.deb,Unpacking tree(1.7.0-3).Processing triggers for man-db(2.7.5-1)Setting up tree(1.7.0-3).2.卸 载 软 件 treekunvn:-$sudo apt-get remove treeReading package lists.DoneBuilding dependency treeReading state information.DoneThe following packages will be REMOVED:tree0 upgraded,0 newly installed,1 to remove and 11 not upgraded.After this operation,138 kB disk space will be freed.Do you want to continue?Y/n y(Reading database.216055 files and directories currently installed.)Removing tree(1.7.0-3)Processing triggers for man-db(2.7.5-1)kunvm:-$treeThe program tree is currently not installed.You can install it by typing:sudo apt install treekunvm:-$六、进 程 管 理 1.to p 命 令 动 态 显 示 进 程 状 态 top 10:30:18 up 25 min,1 user,load average:0.22,0.13,0.13Tasks:251 total,1 running,250 sleeping,0 stopped,0 zombie%Cpu(s):2.3 us,3.2 sy,0.8 nt,89.4 id,4.2 wa,0.0 hi,0.1 si,0.0 stKiB Men:2630628 total,188516 free,625036 used,1217076 buff/cacheKtB Swap:2694076 total,2096840 free,3236 used.1165776 avail MemPID USER PR NI VIRT RES SHR S%CPU%MEM TIME+COMMAND1 root 20 0 119620 5716 3928 S 0.0 0.3 0:03.22 systemd2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd3 root 20 0 0 0 0 S 0.0 0.0 0:00.08 ksoftirqd+5 root 0-26 0 0 0 S 0.0 0.0 0:60.00 kworker/0+7 root 20 0 0 0 0 S 6.0 0.0 0:01.70 rcu sched8 root 20 0 6 0 0 S 0.0 0.0 0:00.00 rcu bh9 root rt 0 0 0 0 S 0.0 0.0 0:00.12 migrattori2.p s命 令 显 示 瞬 时 进 程 状 态 USERrootrootrootrootrootrootrootrootrootrootrootps-auxPID%CPU%MEM vsz RSS TTY119620 57160 00 0?0 070 070 076 0?0 00 00 00 Q7STAT STARTSs 10:04S 10:04S 10:0410:0410:0410:0410:0410:0410:0410:0410:045SSSSSSC.TIME COMMAND0:03/sbin/intt spl0:00 kthreadd0:00 ksoftirqd/00:00 kworker/0:0H0:01 rcu_sched0:00 rcu_bh0:00 mtgratton/O0:00 watchdog/00:00 watchdog/10:00 migration/10:0?rksoftirod/ll3.K i I I命 令 终 止 一 个 进 程 用 gedit打 开 一 个 文 献 a.c p p并 在 后 台 运 营,显 示 的 进 程 号 为 1 7 27 1,然 后 用 kill命 令 杀 死 这 个 进 程,观 测 到 g e d i t 关 闭 kunvn:$gedit a.cpp&1 17271kunvn:$sudo k i l l 17271kunvm:$七、实 验 总 结 通 过 本 次 实 验,熟 悉 了 好 多 Linux下 面 的 基 本 命 令,可 以 看 出 Lin u x 的 命 令 基 本 上 都 有 好 多 参 数 可 选,这 样 就 可 以 用 一 条 命 令 完 毕 好 多 任 务,大 大 提 高 效 率。此 外 还 学 会 了 当 命 令 不 会 使 用 的 时 候,可 以 调 用 man来 查 看 命 令 的 使 用 方 法。实 验 报 告 组 别 姓 名 张 正 银 同 组 实 验 者 实 验 项 目 名 称 实 验 二 Sh e II编 程 实 验 日 期 第 1 2 周 周 四 9,1 0 节 教 师 评 语 实 验 成 绩 指 导 教 师 一、实 验 目 的 掌 握 Shell命 行 的 运 营 掌 握 编 写 和 执 行 S h e门 程 序 的 环 节 掌 握 在 S h e ll中 使 用 参 数 和 使 用 变 量 的 方 法 掌 握 表 达 式 比 较,循 环 结 构 语 句 和 条 件 结 构 语 句 的 写 法 掌 握 在 s h e 1 1脚 本 中 使 用 函 数 的 方 法 二、简 朴 b a s h 脚 本 1.编 写 b a s h 脚 本 kunvm:/Learn$cat ch2-l.sh#!/bin/bash#一 个 裔 单 例 子 whopwddate2.添 加 执 行 权 限 kunQvm:*/Learn$sudo chmod+x ch2-1.shsudo password for kun:3.运 营 结 果 kunvm:*/Learn$./ch2-1.shkun tty7 2016-12-30 10:25(:6)/home/kun/Learn2016年 12月 30 0 星 期 五 10:47:48 CSTkunvm:/Learn$|三、计 算 器:变 量 读 入 和 输 出 1.编 辑 程 序 kunvn:/Learn$vim ch2-2.shkunvm:/Learn$cat ch2-2.shttl/btn/shread x yz=expr$x+$yecho The sum is$z2.添 加 可 执 行 权 限 k:/Leain$chmod+x ch2-2.sh3.运 营 程 序 kunvm:/Learn$./ch2-2.sh1 5The G四、比 较 两 个 数 字 是 否 相 等 1.编 写 程 序 kunvm:/Learn$cat ch2-3.sh#!/btn/bashread x yif$x-eq$y;thenecho$x=$yelseecho$x!=$yft2.添 加 可 执 行 权 限kunvn:/Learn$chmod+x ch2-3.sh3.运 营 程 序 kunvm:*/Learn$./ch2-3.sh1 51!=5kunvm:*/Learn$./ch2-3.sh6 66=6/Lea n$五、循 环 计 算 累 加 和 1.编 写 程 序 kun3vn:/Learn$cat ch2-4.sh#!/bin/bashtotal=0for(j=l;j=100;j+)dototal.=expr$total+$j;doneecho The result is$total2.添 加 可 执 行 权 限 kunvn:/Learn$chnod+x ch2-4.sh3.运 营 程 序 kunvm:/Learn$./ch2-4.shThe result is 5050六、运 用 she 11函 数 计 算 两 数 之 和 1.编 写 程 序 kunvm:/Learn$vim ch2-5.shkunvm:-/Learn$cat ch2-5.sh#!/bin/bashsum()echo$($1+$2);)sum$1$22.添 加 可 执 行 权 限|kunvm:/Learn$chmod+x ch2-5.sh3.运 营 程 序:/Learn$./ch2-5.sh 100 200300kunvm:/Learn$|七、计 算 数 组 累 乘 1.编 写 程 序 kunvn:/Learn$cat ch2-6.sh#!/bin/bashresult=lfor t tn$e;doresult=$($resul.t*$i)doneecho$result2.添 加 可 执 行 权 限 kunvn:/Learn$chmod+x ch2-6.sh3.运 营 程 序 kunvm:-*/Learn$./ch2-6.sh 2 5 660kunvm:*/Learn$./ch2-6.sh 22kunvm:*/Learn$./ch2-6.sh 1000010000kunvn:*/Learn$7680kunvm:*/Learn$180kunQvm:*/Learn$-30kunvm:*/Learn$./ch2-6.sh 1 2 4 8 IO 12./ch2-6.sh-5 6-3 2./ch2-6.sh-5 6八、实 验 总 结通 过 本 次 实 验,我 学 会 了 shell中 的 各 种 写 法,涉 及 流 程 控 制,循 环,数 组,函 数 等 等,了 解 到 shell在 L i n u x是 一 种 强 大 的 神 器,可 以 批 量 完 毕 各 种 操 作。6 实 验 报 告 组 别 姓 名 张 正 银 同 组 实 验 者 实 验 项 目 名 称 实 验 三 文 献 操 作 实 验 日 期 第 1 3 周 周 四 9,1 0 节 教 师 评 语实 验 成 绩 指 导 教 师 一、实 验 目 的 1.熟 悉 cd、d a te、pwd、cal、who echo、c 1 e a r pa s swd 等 常 用 命 令。2.掌 握 在 用 户 主 目 录 下 对 文 献 进 行 的 操 作:复 制 一 个 文 献、显 示 文 献 内 容、查 找 指 定 内 容、排 序、文 献 比 较、文 献 删 除 等。3.学 会 对 目 录 进 行 管 理:创 建 和 删 除 子 目 录、改 变 和 显 示 工 作 目 录、列 出 和 更 改 文 献 权 限、链 接 文 献 等。二、文 献 操 作:修 改 文 献 权 限 设 计 一 个 程 序,规 定 把 系 统 中“/etc”目 录 下 的 passwd文 献 权 限,设 立 成 文 献 所 有 者 可 读 可 写,所 有 其 他 用 户 为 只 读 权 限。1.编 写 C语 言 程 序 kunvm:/Learn$cat 5-2.cinclude/*文 件 预 处 理,包 含 chmod函 数 库*/#include/*文 件 预 处 理,包 含 chmod函 数 库*/int main()/*C程 序 的 主 函 数,开 始 入 口*/(chmod(/etc/passwdM,S_IRUSRIS_IWUSR|S_IRGRPIS_IROTH);/*S_IRUSR表 示 拥 有 者 具 看 读 权 限,S RGRP表 示 组 而 人 具 有 读 权 限,SJROTH表 示 其 他 人 具 有 读 权 限*/return 0;2.编 译 执 行 kunvm:/Learn$gcc-o 5-2.0 5-2.ckunvm:/Learn$./5-2.O3.查 看 结 果 kunvm:/Learn$Is-1/etc/passwd-r w-r-r-1 root root 2284 12月 31 20:33/etc/passwd三、从 终 端 读 写 数 据文 献 的 打 开 可 以 用 o p e n函 数,即 使 本 来 的 文 献 不 存 在,也 可 以 用 o p e n函 数 创 建 文 献。在 打 开 或 者 创 建 文 献 时,可 以 指 定 文 献 的 属 性 及 用 户 的 权 限 等 参 数。关 闭 一 个 打 开 的 文 献,用 c lo s e 函 数。当 一 个 进 程 终 止 时,它 所 有 已 打 开 的 文 献 都 由 内 核 自 动 关 闭。1.编 写 C语 言 程 序 5-7.C X#include#include int main(void)char buf80;int n;n=read(STDIN_FILENOz buf,80);if(n 0)perror(read STDIN_FILENO);exit(1);write(STDOUT_FILENO,buf,n);return 0;2.查 看 运 营 结 果 TerminalabcdeffffffffabcdeffffffffProcess returned 0(0 x0)Press ENTER to continue.execution time四、文 献 上 锁 和 锁 的 释 放 1.题 目 规 定 设 计 一 个 程 序,规 定 在“/roo t”下 打 开 一 个 名 为“5-l l f i Ie”的 文 献,假如 该 文 献 不 存 在,则 创 建 此 文 献。打 开 后 对 其 加 上 强 制 性 的 写 入 锁 F_W R LCK,按 回 车 后 解 锁 F_UNLCK,然 后 加 上 读 出 锁 F_RD L C K,按 回 车 后 再 解 锁 F_UNLCK。程 序 在 终 端 1 运 营 后 会 显 示 程 序 的 进 程 号,再 打 开 终 端 2,会 提 醒 此 文 献 处 在 锁 定 状 态,此 时 在 终 端 2 可 以 多 按 回 车,观 测 程 序 的 运 营 结 果。然 后 在 终 端 1 按 回 车,等 待 终 端 1解 锁 后,在 终 端 2 才 可 锁 定 此 文 献,你 可 观 测 到 强 制 性 锁 是 独 占 状 态,当 在 终 端 2解 锁 后,在 终 端 1或 2 可 加 读 出 锁,在 读 出 锁 状 态 终 端 1 或 2 的 运 营 不 需 要 等 待,由 于 读 出 锁 是 处 在 共 享 状 态,请 编 写 程 序 并 测 试 程 序 运 营 的 结 果。2.分 析 主 程 序 先 用 o p e n函 数 打 开 文 献“5-1 Ifile”,假 如 该 文 献 不 存 在,则 创 建 此 文 献;接 着 调 用 自 定 义 函 数 Io c k_set:先 传 递 参 数“F_WRLCK”给 文 献“5-1 I f i Ie”加 锁,并 打 印 输 出 给 文 献 加 锁 进 程 的 进 程 号,然 后 先 传 递 参 数“F_U N LC K”给 文 献“5-1 lf ile”解 锁,并 打 印 输 出 给 文 献 解 锁 进 程 的 进 程 号;在 自 定 义 函 数 lock_set给 文 献 上 锁 语 句 前,加 上 判 断 文 献 是 否 上 锁 的 语 句,假 如 文 献 已 经 被 上 锁,打 印 输 出 给 文 献 上 锁 进 程 的 进 程 号。3.编 写 C语 言 程 序5-7.C X#include#include#include#include#includetincludevoid lock set(int fd,int type)structlock.1lock.1lock1flockwhencelock;=SEEK_SET;startlen=0while(1)lock.l_type=type;if(fcntl(fd,F_SETLK,&lock)=0)/*握 一 同 的 tvne 值 给 文 件 力 口 锁 或?*/(i f(lo c k.l_ ty p e=F_RDLCK)/*F RDLCK为 共 享 锁,表 示 读 取 锚 或 建 议 件 锚 Printf(加 上 读 取 锁 的 犀%dn,9e tPi d()e l s e i f(lo c k.l_ t y p e-FJWLCK)/*F WRLCK为 排 斥 锁,表 示 强 制 忤 镭*/printf(加 上 写 入 锁 的 星 4%dn-,9e tPi d()else if(lock.l_type=F_UNLCK)printf(,释 放 强 制 性 锁:%dn-,getpid();return;fcntKfd,F_GETLK,&lock);*磋 取 文 件 钺 的 状 态/if(lock.l_type 1=F_UNLCK)if(lock.l_type=F_RDLCK)print*”文 件 日 经 加 上 了 读 取 锁,茸 讲 程 号 星%d X n.,lock.l_pid);else if(lock.l_type=F_WRLCK)printf(“文 用 力 口 圭 耳 入 锁.其 说 程 号 是&%d X n.,lock.l_pid);getchar();)int main()(int fd;fd=open(/root/5-llfileM,O_RDWR|O_CREAT,0666);if(fd 0)perror(“打 开 出 错”);exit(1);)lock_set(fdzF_WRLCK);getchar();lock_set(fdzF_UNLCK);getchar();lock_set(fdzF_RDLCK);getchar();lock_set(fd,F_UNLCK);close(fd);exit(0);4.执 行 程 序 终 端 1:加 上 写 入 锁 的 是:5 4 03释 放 强 制 性 锁:54 0 3文 献 已 加 上 写 入 锁,其 进 程 号 是:54 0 4文 献 已 加 上 写 入 锁,其 进 程 号 是:5404文 献 已 加 上 写 入 锁,其 进 程 号 是:540 4加 上 读 取 锁 的 是:54 0 3释 放 强 制 性 锁:5403终 端 2:文 献 已 加 上 写 入 锁,其 进 程 号 是:5403文 献 已 加 上 写 入 锁,其 进 程 号 是:5 4 0 3文 献 已 加 上 写 入 锁,其 进 程 号 是:540 3加 上 写 入 锁 的 是:5404释 放 强 制 性 锁:540 4加 上 读 取 锁 的 是:5404释 放 强 制 性 锁:54 0 4五、流 文 献 的 打 开 和 关 闭 带 缓 存 的 流 文 献 I/O 操 作,是 基 于 输 入/输 出(I/O)流 机 制 的 文 献 操 作,又 做 文 献 流(F ile s t ream)的 操 作。下 面 具 体 说 明 文 献 流 的 关 闭 与 打 开。1.题 目 规 定 设 计 一 个 程 序,规 定 用 流 文 献 I/O操 作 打 开 文 献“5;2fil e”,假 如 该 文 献 不 存 在,则 创 建 此 文 献。2.题 目 分 析 带 缓 存 的 基 于 输 入/输 出(I/。)流 机 制 的 文 献 操 作 时,打 开 文 献 用 fo p e n函 数,关 闭 文 献 用 fclo se函 数。3.程 序 编 写|5-12.C X#includeint main()E lFILE*fp;if(fp=fopen(5-12file,a+)=NULL)3 printf(打 开(创 建)文 件 出 错,);exit(0);一 fclose(fp);)J4.运 营 结 果 可 以 看 到 程 序 运 营 后 创 建 了 5-12f i I e”文 献 F0 TerminalProcess returned 0(0 x0)Press ENTER to continue.1execution time:kunvn:/Learn$Is-a l-rw-rw-r-1 kun kun 05-1 2 ftle12月 31 21:15 5-1 2 fU e六、实 验 总 结 通 过 本 次 实 验,我 掌 握 了 L in u x下 用 C 语 言 读 写 文 献 的 方 法,涉 及 带 缓 存 和 不 带 缓 存 的 方 法。此 外 也 学 会 了 用 C 语 言 修 改 文 献 权 限 等 知 识 点。可 以 看 出 Linux和 C语 言 是 浑 然 一 体 地,可 以 用 C 语 言 无 缝 地 操 作 Linu x 系 统。6 实 验 报 告 组 别 姓 名 张 正 馄 同 组 实 验 者 实 验 项 目 名 称 实 验 四 进 程 控 制 实 验 日 期 第 1 4 周 周 四 9,1 0节 教 师 评 语 实 验 成 绩 指 导 教 师一、实 验 目 的 1.理 解 进 程 的 基 本 概 念 及 进 程 的 结 构 2.学 会 L i n u x环 境 下 进 程 的 相 关 函 数 的 应 用 3.掌 握 守 护 进 程 的 概 念、启 动 和 建 立 4.掌 握 进 程 操 作 程 序 的 编 写 二、进 程 简 介 进 程 是 正 在 执 行 中 的 程 序。当 我 们 在 终 端 执 行 命 令 时,L i n u x 就 会 建 立 一 个 进 程,而 当 我 们 的 程 序 执 行 完 毕 时,这 个 进 程 就 被 终 止 了。Lin u x 是 一 个 多 任 务 操 作 系 统,允 许 多 个 用 户 使 用 计 算 机 系 统,多 个 进 程 并 发 执 行。L in u x 环 境 下 启 动 进 程 有 两 种 重 要 途 径:手 工 启 动 和 调 度 启 动。三、程 序 显 示 进 程 号 和 父 进 程 号 在 L i n u x环 境 下 进 程 创 建 时,系 统 会 分 派 一 个 唯 一 的 数 值 给 每 个 进 程,这 个 数 值 就 称 为 进 程 标 记 符(PID)o在 L i n u x中 进 程 标 记 有 进 程 号(PID)和 它 的 父 进 程 号(R P ID)o其 中,PID唯 一 地 标 记 一 个 进 程。P ID和 PPID都 是 非 零 的 正 整 数。在 L i n u x 中 获 得 当 前 进 程 的 PID和 P PID的 系 统 调 用 为 g e tp id和 ge t p p i d 函 数。1.程 序 编 写#include tinclude int main()printf(Bu4:%dn,getpid();printf(闻 6:*dn,getppid();return 0;)2.编 译 运 营 Terminaltd:3515pid:3514rocess returned 0(0 x9)executionress ENTER to continue.Terminalptd:3542ppid:3541Process returned 0(0 x0)execPress ENTER to continue.可 看 到,每 次 运 营 的 P id都 是 不 同 的。四、子 进 程 的 创 建 进 程 调 用 for k 函 数 创 建 一 个 新 进 程,由 f or k 创 建 的 新 进 程 被 称 为 子 进 程(c hild p r o c e s s)o该 函 数 被 调 用 一 次,但 返 回 两 次,两 次 返 回 的 区 别 是 子 进 程 的 返 回 值 是 0,而 父 进 程 的 返 回 值 则 是 新 子 进 程 的 进 程 P I D。子 进 程 和 父 进 程 继 续 执 行 fork之 后 的 指 令。子 进 程 是 父 进 程 的 复 制 品。例 如,子 进 程 获 得 父 进 程 数 据 空 间、堆 和 栈 的 复 制 品。注 意,这 是 子 进 程 所 拥 有 的 拷 贝。父、子 进 程 并 不 共 享 这 些 存 储 空 间 部 分,通 常 父、子 进 程 共 享 代 码 段 1.编 写 C语 言 程 序 tinclude#include finclude finclude int main()pid_t pid;char*message;int n;pid=fork();if(pid 0)perror(Mfork failednw);exit(1);else if(pid=0)message=This is the childln;n=3;)else message=This is the parent;n=6;)while(n-)puts(message);sleep(1);)2.运 营 程

    注意事项

    本文(2023年Linu程序设计实验报告大作业.pdf)为本站会员(无***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开