MENU

标签 Linux 下的文章

Solus 切换到清华源

闲来无事试试Solus,的确惊艳,不过好多细节还不完善,官方的源更新也比较慢。
国内清华大学镜像站可以更新Solus,下面是Solus切换更新源到清华大学镜像站的方法:


阅读全文

Linux多线程:线程与信号

每个线程都有自己的信号屏蔽字,新的线程会继承创建它的线程的信号屏蔽字。但是信号处理程序是所有线程共享的,也就是说一个线程注册了一个信号处理程序,其他线程就得使用这个信号处理程序。

阅读全文

Linux线程同步:条件变量(pthread_cond_t)

什么是条件变量

先看一下APUE第三版对于条件变量的说明:

Condition variables are another synchronization mechanism available to threads. These synchronization objects provide a place for threads to rendezvous. When used with mutexes, condition variables allow threads to wait in a race-free way for arbitrary conditions to occur.
The condition itself is protected by a mutex. A thread must first lock the mutex to change the condition state. Other threads will not notice the change until they acquire the mutex, because the mutex must be locked to be able to evaluate the condition.


阅读全文

使用pthread_create()创建线程

可以通过 pthread_create()函数创建新线程。

#include <pthread.h>
int pthread_create(pthread_t *restrict tidp,
                              const pthread_attr_t *restrict attr,
                              void *(*start_rtn)(void *),
                              void *restrict arg);

阅读全文

经典 Fork 炸弹解析

原文出处:saymagic

Jaromil 在 2002 年设计了最为精简的一个Linux Fork炸弹,整个代码只有13个字符,在 shell 中运行后几秒后系统就会宕机:

:(){:|:&};:
这样看起来不是很好理解,我们可以更改下格式:
:()
{
    :|:&
};
:

阅读全文

C语言关键字static

<h4>1.作用于变量</h4>
用static声明局部变量

用static声明局部变量时,则改变变量的存储方式(生命期),使变量成为静态的局部变量,即编译时就为变量分配内存,直到程序退出才释放存储单元。这样,使得该局部变量有记忆功能,可以记忆上次的数据,不过由于仍是局部变量,因而只能在代码块内部使用(作用域不变)。


阅读全文