随笔分类 -  Linux

在windows和Linux系统之间配置共享目录(使用samba工具)
摘要:1. 安装samba工具`apt install samba` 2. 编辑`vim /etc/samba/smb.conf` 3. 文件底部添加配置信息: ``` [code] path=/code #指定共享目录 writeable=yes #可写 browseable=yes #可预览 gues
50
0
0
一份基本的VIM配置
摘要:一份基本的VIM配置, 优化了一些功能,可以直接使用 ```vim """"""""""""""""""""""""""""""""""""""""""""&q
197
0
0
Linux系统编程24-用户注销命令实现
摘要:注销过程: 1. 打开文件utmp 2. 从utmp中找到包含你所在终端的登录记录, 将 ut_line 字段和终端名比较 3. 对当前记录做修改, 把 ut_type 的值 从 USER_PROCESS 改为 DEAD_PROCESS, ut_time 改为当前时间,情况用户名和主机字段 因为 r
50
0
0
Linux系统编程23-简单的cp命令实现
摘要:实现cp(读和写) 用法:cp source target target 存在就覆盖, 不存在就创建。 - 创建或重写文件是调用系统函数 creat(filename, mode): - 如果文件不存在就创建它,存在就把内容清空,长度设为0 - 向已打开的文件中写入数据 write(fd, buff
49
0
0
Linux系统编程22-简单的who命令实现
摘要:### 实现who命令: - 从文件中读取数据结构 - 将结构中的信息以合适的形式显示出来 - who的时间表示格式:["2011-01-17 13:40"] ### 需要用到的函数(unistd.h): - 打开一个文件: open(filename, how), 建立文件描述符,连接文件与进程
35
0
0
Linux系统编程21-简单的more命令实现
摘要:/dev/tty: 键盘和显示器设备描述文件 - 向该文件写->显示在用户屏幕 - 向该文件读->从键盘获取用户输入 当more需要用户输入可以从/dev/tty得到数据 ```c #include #include #define PAGELEN 24 #define LINELEN 512 vo
38
0
0
Linux系统编程20-shell脚本入门
摘要:> shell 是一个作为用户与Linux系统间接口的程序, 默认的shell程序 /bin/sh实际上是对程序 /bin/bash的一个连接 ### 管道与重定向 #### 重定向 重定向输出: `ls -l / > lsoutput.txt` 使用>>附加输出内容: `ps >> lsoutpu
29
0
0
Linux多线程14-信号量
摘要:信号量的类型 sem_t ```c int sem_init(sem_t *sem, int pshared, unsigned int value); 初始化信号量 参数: - sem: 信号量变量地址 - pshared: 0 用在线程间, 非0 用在进程间 - value: 信号量中的值 in
44
0
0
Linux多线程13-条件变量
摘要:上节代码存在的问题: 生产者已经没有数据了, 消费者还在while循环判断是否有数据,浪费资源 没有数据了应该通知生产者生产,生产好了通知消费者消费 这就需要条件变量 pthread_cond_t ```c int pthread_cond_init(pthread_cond_t *restrict
14
0
0
Linux多线程12-生产者和消费者模型
摘要:![image](https://img2023.cnblogs.com/blog/894919/202306/894919-20230626085900099-1696309927.png) 一个最简单的生产者消费者模型 ```c /* 生产者消费者模型(粗略版) */ #include #inc
66
0
0
Linux多线程11-读写锁
摘要:当有一个线程已经持有互斥锁时,互斥锁将所有试图进入临界区的线程都阻塞住。 但是考虑一种情形,当前持有互斥锁的线程只是要读访问共享资源,而同时有其它几个线程也想读取这个共享资源,但是由于互斥锁的排它性,所有其它线程都无法获取锁,也就无法读访问共享资源了,但是实际上多个线程同时读访问共享资源并不会导致问
34
0
0
Linux多线程10-死锁
摘要:有时,一个线程需要同时访问两个或更多不同的共享资源,而每个资源又都由不同的互斥量管理。当超过一个线程加锁同一组互斥量时,就有可能发生死锁。 两个或两个以上的进程在执行过程中,因争夺共享资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁。 死锁的
71
0
0
Linux多线程09-互斥锁
摘要:- 为避免线程更新共享变量时出现问题,可以使用互斥量(mutex 是 mutual exclusion的缩写)来确保同时仅有一个线程可以访问某项共享资源。可以使用互斥量来保证对任意共享资源的原子访问。 - 互斥量有两种状态:已锁定(locked)和未锁定(unlocked)。任何时候,至多只有一个线
85
0
0
Linux多线程08-线程同步
摘要:一个多线程售票示例: ```c // 三个窗口, 共100张票 #include #include #include int tickets = 100; //所有线程都共享这100张票 void* sellticket(void* arg){ // 卖票 while(tickets>0){ usl
19
0
0
Linux多线程07-线程属性
摘要:线程属性类型: pthread_attr_t 描述: pthread_attr_setdetachstate() 函数 将由 attr 引用的线程属性对象的分离状态属性设置为 detachstate 中指定的值。分离状态属性确定使用线程属性对象 attr 创建的线程将在可连接状态还是分离状态下创建。
42
0
0
Linux多线程06-线程取消
摘要:### pthread_cancel 描述: > pthread_cancel()函数向线程thread发送一个取消请求。目标线程对取消请求的响应取决于该线程控制的两个属性:其取消状态和类型。 一个线程的取消状态由pthread_setcancelstate(3)确定,可以启用(对于新线程而言是默认
79
0
0
Linux多线程05-线程的分离
摘要:### pthread_detach 描述: > pthread_detach()函数将由thread标识的线程标记为已分离。当一个分离的线程终止时,它的资源会自动释放回系统,而不需要另一个线程与已终止的线程加入。尝试分离一个已经分离的线程会导致未指定的行为。 ```c #include int p
35
0
0
Linux多线程04-连接已终止的线程
摘要:### pthread_join 描述: > pthread_join() 函数等待由 thread 指定的线程终止。如果该线程已经终止,则pthread_join()将立即返回。由thread指定的线程必须是可连接的。 如果retval不为NULL,则pthread_join()将目标线程的退出状
23
0
0
Linux多线程03-终止线程
摘要:### pthread_exit 和 pthread_self 和 pthread_equal 描述: #### **pthread_exit** > pthread_exit() 函数终止调用该函数的线程,并通过retval返回一个值,如果该线程是可连接的,则在同一进程中调用pthread_joi
143
0
0
Linux多线程02-创建线程
摘要:### pthread_create 描述: > pthread_create() 函数在调用进程中创建一个新的线程。新线程通过调用 start_routine() 开始执行,arg 作为 start_routine() 的唯一参数传递。 新线程以以下方式之一终止: - 调用 pthread_exi
320
0
0
点击右上角即可分享
微信分享提示
深色
回顶
收起