
Linux
文章平均质量分 78
hepangda
这个作者很懒,什么都没留下…
展开
-
[ArchLinux] 搜狗拼音输入法的安装
配置源在ArchlinuxCN源中有很多方便中国用户使用的包,其中也包含了经常使用的搜狗拼音输入法,于是我们需要先配置ArchlinuxCN源,这样我们就可以使用自带的包管理器Pacman直接安装搜狗拼音输入法。首先使用文本编辑器打开/etc/pacman.conf,末尾增加以下两句:[archlinuxcn]Server = https://mirrors.ustc.edu.cn/archlin原创 2017-06-26 11:33:56 · 11714 阅读 · 1 评论 -
[ArchLinux] 安装及KDE桌面环境安装配置
ArchLinux 安装及KDE桌面环境安装配置首先,安装之前,需要一个“启动介质”,我这里习惯使用USB设备作为启动介质,这是由于ArchLinux滚动更新的特性,而且占用空间很小,以其他的方式安装个人认为不太适合。话不多说,访问ArchLinux官方网站,点击右上角Download,在下方选择适合你的下载方式或镜像进行下载,我常用的地址是网易的镜像源,和清华大学的镜像源。下载完毕后,我一般...原创 2018-09-22 22:22:39 · 19694 阅读 · 2 评论 -
[GNU/Linux] Linux系统调用-线程相关(三):私有数据
线程特定数据线程特定数据,也称之为线程私有数据,是一种存储和查询某个特定线程相关数据的一种机制。使用线程特定数据的原因是:我们希望每个线程可以访问它单独的数据副本,而不需要担心与其他线程的同步访问问题。而实际上由于每一个线程都可以平等地访问进程空间里的所有内容,我们并不能完全地屏蔽掉这种访问,但我们可以设计使得很难在编码无恶意的情况下访问到不应当访问的数据。在使用线程特定数据之前,我们需要一个键,这原创 2017-07-27 11:04:30 · 311 阅读 · 0 评论 -
[GNU/Linux] Linux系统调用-线程相关(一):基本知识
线程包含的信息:每个线程中都包含有表示自身执行环境的信息,其中至少包括:标识线程的线程ID、一组寄存器的值、栈、调度优先级和策略、信号屏蔽字、errno变量和线程的私有数据。 线程函数的错误处理与返回值:与一般的POSIX函数不同,线程函数在执行发生错误的时候,一般不会设置errno全局变量值,而是直接返回表示错误类别的错误码。因此下面的函数若不特殊说明,一般不会设置errno。线程标识符函原创 2017-07-25 19:16:20 · 1140 阅读 · 0 评论 -
[GNU/Linux] Linux系统调用-线程相关(二):线程同步
以下内容中读写锁、自旋锁、屏障并没有在《Linux C编程实战》一书中提及,其内容来源于《Advanced Programming in the Unix Environment》中。互斥量 Mutex初始化、销毁函数原型及解释//对于静态分配的互斥量,可以通过赋特殊值的方法完成初始化,如:pthread_mutex_t one = PTHREAD_MUTEX_INITIALIZER;//对于原创 2017-07-26 11:33:32 · 424 阅读 · 0 评论 -
[网络编程] 常见的IO模型
常见的IO模型在Unix Network Programming一书中提到了若干个常见的IO模型,大概有: - 同步阻塞IO(Blocking IO):即传统的IO模型。 - 同步非阻塞IO(Nonblocking IO):此时非阻塞IO的Socket应当被设定为NONBLOCK。 - IO多路复用(IO Multiplexing):也称之为异步阻塞IO,是一种Reactor设计模式。常原创 2017-08-02 16:35:46 · 556 阅读 · 0 评论 -
[GNU/Linux] 自己实现shell
写在前面shell作为一种与内核对话的一种方式,为我们使用操作系统服务,提供了很多便利。在我们使用Linux时,shell是不得不接触的内容之一。为了学习和熟悉Linux进程相关的内核函数,我们可以尝试着自己实现一个shell。源代码src/MakefileSOURCES = $(wildcard *.cpp)OBJECTS = $(patsubst %.cpp, %.o, $(SOURCES))原创 2017-07-25 09:13:02 · 858 阅读 · 0 评论 -
[GNU/Linux] Linux系统调用-进程相关
进程标识符函数原型及解释pid_t getpid(void);pid_t getppid(void);uid_t getuid(void);uid_t geteuid(void);gid_t getgid(void);gid_t getegid(void);返回值:成功时getpid返回自身的pid,getppid返回自身父进程的pid,getuid返回自身的实际运行uid,geteui原创 2017-07-24 14:48:43 · 443 阅读 · 0 评论 -
[GNU/Linux] 自己实现ls
随便扯点什么实际上刚开始让我实现ls(1)我是拒绝的,因为,你不能让我写,我就马上去写,第一我要看一下,因为我不愿意写完了以后再加一些特技上去,比如ls忽然“Segmentation Fault”了,很懵逼、很低能,这样用过ls的人出来一定会骂我,根本没有这样辣鸡的ls,就证明这ls一点也不好用,就是在骗人。后来组长告诉我只用实现-a -l -R就好,我写了两天左右,感觉还不错,后来我在使用的时候就原创 2017-07-23 22:28:19 · 560 阅读 · 1 评论 -
[GNU/Linux] Linux系统调用-文件操作(二)
获得文件属性函数功能:获得文件的属性。函数原型及解释int stat(const char *restrict path, struct stat *restrict buf);int fstat(int fildes, struct *buf);int lstat(const char *restrict path, struct stat *restrict buf);返回值:若执行成功则原创 2017-07-20 17:19:30 · 315 阅读 · 0 评论 -
[GNU/Linux] Linux系统调用-文件操作(一)
POSIX 错误处理 POSIX函数若执行时发生错误,大部分函数都将设置全局变量errno,以下内容若未特别提及,均在执行失败时设置了errno。 各个errno变量可以取的常数值可以使用man 3 errno查看man手册得知。打开文件函数功能: 打开文件并返回文件描述符,其他功能视参数而定。函数原型及解释int open(const char *path, int oflag, .原创 2017-07-20 11:43:42 · 339 阅读 · 0 评论 -
[IPC] 共享内存——分析和使用
共享内存共享内存简介共享内存是所有进程间通信(IPC)手段中速度最快的,不同进程间使用事实上的同一内存区域,这样使得进程间使用信息时免去“复制”这一流程,减少开销。以下面“进程A从文件f中读取数据,进行加工之后,将数据传递给进程B”这种场景为例,若使用其他的IPC形式,我们至少需要以下步骤:1. 从文件f中复制数据到进程A的内存中;2. 加工数据;3. 将加工好的数据通过系统调用拷贝到...原创 2018-10-31 22:56:59 · 1594 阅读 · 1 评论