《Linux操作系统》课程报告 第28页
然后我们可以在a2目录下新建目录和修改文件,也可以对该目录下的目录进行修改(新建/删除文件和目录等)。
接下来我们在/temp/demo6目录中用mingsha用户新建一个a3.a。
然后我们使用chattr+i a3.a为该文件增加不可改变位权限。然后发现该文件是不可以更改的。保存时会有如下提示:
《Linux操作系统》课程报告 第29页
发现该文件也是无法删除的。
我们切换到mingsha用户创建一个a4.a文件,然后对a4.a文件进行编辑并保存,然后切换到root用户,对a4.a文件加上不可改变位,然后切换回mingsha用户,尝试删除a4.a文件,发现操作失败。
当使用vi a4.a再次修改文件时,发现会提示如下:
然后我们使用追加的方式在a4.a中添加数据,得到如下:
《Linux操作系统》课程报告 第30页
则a4.a文件被添加数据。
3.4总结与体会
本章节主要是了解和练习了Linux中关于权限的命令,从基本权限和特殊权限,都从多方面更加全面、细致地学习了Linux的权限机制,也通过实践加强了对相关权限命令的理解和应用,从本次的学习中,也更加全面地了解了root用户和普通用户的区别,虽然在练习的过程中遇到了一些问题和困难,但最后都解决了。总体上来说,收获颇多。
《Linux操作系统》课程报告 第31页
4Linux c语言编程
4.1Linux下的c语言编程介绍
在很多人的眼里,C语言和Linux常常是分不开的。这其中的原因很多,其中最重要的一部分我认为是Linux本身就是C语言的杰出作品。当然,Linux操作系统本身对C语言的支持也是相当到位的。作为一个真正的程序员来说,如果没有在Linux下面用C语言编写过完整的程序,那么只能说他对C语言本身的理解还相当肤浅,对系统本身的认识也不够到位。作为程序员来说,Linux系统为我们提供了很多理想的环境,这其中包括了下面几个方面[8]:
(1)完善的编译环境,包括gcc、as、ld等编译、链接工具。 (2)强大的调试环境,主要是gdb工具。
(3)丰富的自动编译工具,主要是make工具。 (4)多样化的os选择,ubuntu、redflag等等。 (5)浩瀚的开源代码库。
4.2c语言编程实例
4.2.1线程的同步——互斥锁
(1)源代码
/*
* 线程的同步和互斥
* 创建两个线程,使用互斥量使任一时刻只能有一个线程对全局变量进行 操作 */
#include
pthread_mutex_t mutex; // 互斥量 int x; // 全局变量
void thread1(void) //线程1函数 对全局变量进行逐 //减操作 {
while(x>0) {
pthread_mutex_lock(&mutex); //对互斥量加锁 printf(\ x--;//对全局变量进行逐减操作
pthread_mutex_unlock(&mutex); //对互斥量解锁 sleep(1); }
pthread_exit(NULL); }
void thread2(void) //线程2函数 对全局变量进行逐 //减操作 功能同线程1一样
相关推荐: