【杂】操作系统实验问题整理

本文主要是用来整理存放在进行操作系统实验时遇到的问题、原因以及解决方案,不当之处,欢迎读者批评指正。
实验环境:Linux(Ubuntu18.04.4)
随着实验的进行会经常更新的 : )

1. 进入root权限

使用sudo命令,并在系统提示的时候输入密码。

1.1 临时使用root权限

直接在sudo后空格写上想要在root权限下执行的命令

$sudo + command

1.2 打开一个有root权限的终端

$sudo su

2. setpriority()函数用法及注意事项(C)

2.1 函数说明

用来设置进程、进程组、用户进程的动态优先级的系统调用

2.2 函数用法

头文件

#include <sys/time.h>    
#include <sys/resource.h>

函数定义

int setpriority(int which, int who, int prio);
参数解释
which设置的对象。可以是进程(PRIO_PROCESS)、进程组(PRIO_PGRP),用户(PRIO_USER)。
who对应对象的进程号或组号或用户号
prio要设置的优先级数。介于-20 至20 之间. 代表进程执行优先权, 数值越低代表有越高的优先级

优先数VS优先级
在这里优先数越小,对应的进程优先级越高

返回值

返回所有匹配进程中最高的优先数

2.3 使用注意事项

一般用户无法降低优先级,只有具有root权限的用户才可以执行降低优先级的操作。
在实验三的时候,执行降低优先级的代码一直不起作用,检查了好多次也没有找出代码的错误,最终发现是因为没有使用root权限造成的。

3. FILE结构体

参考自:Linux下的FILE*结构体
FILE结构体代表一个打开的文件,系统中的每个打开的文件在内核空间都有一个关联的FILE结构体。它由内核在打开文件时创建,并传递给在文件上进行操作的任何函数。在文件的所有实例都关闭后,内核释放这个数据结构。

4. fgets()函数

4.1 函数说明

读取文件,获得文件指针
从指定的流 stream 读取一行,并把它存储在 str 所指向的字符串内。当读取 (n-1) 个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。

4.2 函数定义

char *fgets(char *s, int n, FILE *stream);
参数解释
s字符型指针,指向存储读入数据的缓冲区的地址。
n读取字符的最大数量为n-1
stream指向FILE结构体的指针

5.feof()函数

参考:C 库函数 - feof()|菜鸟教程

5.1 函数说明

测试给定流 stream 的文件结束标识符

5.2 函数定义

int feof(FILE *stream)

5.3 返回值

当设置了与流关联的文件结束标识符时,该函数返回一个非零值,否则返回零。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值