ดังที่ฉันเข้าใจผู้ใช้ทุกคนใน linux สามารถเปลี่ยนลำดับความสำคัญของทุกกระบวนการโดยใช้คำสั่ง nice และ renice นอกจากนี้ฉันรู้ว่าผู้ใช้ทั้งหมดสามารถเพิ่มลำดับความสำคัญของกระบวนการและผู้ใช้เท่านั้นที่สามารถลดลำดับความสำคัญนี้คือ ROOT เมื่อฉันทดสอบสิ่งนี้ในสภาพแวดล้อมของ Terminal โดยใช้คำสั่งเหล่านี้ทุกอย่างก็โอเค หมายความว่าเมื่อฉันต้องการลดระดับความสำคัญของกระบวนการระบบจะออกข้อความ "การปฏิเสธสิทธิ์" ตามที่ฉันรู้ด้วยโดยค่าเริ่มต้นกระบวนการทั้งหมดจะทำงานโดยมีลำดับความสำคัญ0
ดังนั้นเมื่อฉันต้องการตั้งค่าลำดับความสำคัญของกระบวนการด้วยจำนวนลบระบบจะต้องออกข้อความแสดงข้อผิดพลาด เมื่อฉันรันโปรแกรมภาษา C นี้:
#include<stdio.h>
#include<unistd.h>
void main()
{
int n=10,r;
r=nice(n);
while(1)
printf("Test);
}
ฉันคาดว่าระบบจะแสดงข้อผิดพลาด แต่โปรแกรมทำงานได้โดยไม่มีปัญหา! แม้ว่าโปรแกรมจะทำงานโดยได้รับอนุญาตจากผู้ใช้ทั่วไป ฉันต้องการที่จะรู้ว่าทำไมเมื่อฉันต้องการลดลำดับความสำคัญของกระบวนการโดยใช้คำสั่ง renice ตามสิ่งที่คาดว่าระบบจะแสดงข้อผิดพลาด แต่เมื่อฉันต้องการลดลำดับความสำคัญของกระบวนการโดยการใช้nice()
ฟังก์ชั่น ประโยคนี้All users just can increase the priority of process and the only user that can decrease this priority is ROOT.
ถูกต้องหรือไม่