随笔分类 - Linux
目前只用过Ubuntu相关的分支
摘要:在网上看到有人贴过过程,照着做发现有点问题。这里自己写一下,以备后用。其实和一般库的编译过程差别不大,不过是第一次在命令行下使用cmake,所以出了点岔子。 首先是下载jrtplib和jthread,解压,放在任意文件夹内。先编译jthread,在shell中输入cmake CMakeList.txt,然后make,sudo make install, 库会被默认安装到/usr/local/lib下,而头文件则在/usr/local/include/jthread下。想要改变 安装路径,需要使用cmake -i来修改选项中的安装路径。理论上说,编译完jthread后,jrtplib在编译过程中
阅读全文
摘要:对于CS的课程,除了离散数学和编译原理这种抽象程度较高的理论课,其他的基本都要自己动手写代码、观察和调试的,这里的读书笔记其实没啥大用,只是作为一个督促自我学习的方式,同时也算是以后方便查询的index吧。马上就要开学,华为的习题还没做,今天开始添加此项任务吧。IPC方式,POSIX.1规定的有pipe和FIFO;XSI扩展中又添加了消息队列、信号量和共享内存,以及网络编程中的套接字;XSI可选部...
阅读全文
摘要:本章主要讲解高级I/O,是以后各章学习的基础。非阻塞I/O:指定文件打开方式时,oflag中添加O_NONBLOCK标志,或者对已经打开的文件描述符使用fcntl更换文件的打开标志。记录锁record locking的作用是:可以锁定文件中的一部分,阻止其他进程修改同一文件区。使用fcntl函数完成该功能,int fcntl(int filedes, int cmd, …/*struct floc...
阅读全文
摘要:这两章讲诉线程和线程控制的相关api。为什么要有线程呢,因为线程更快,并发操作操作资源更简单。注:线程系函数多半并不设置errno,而是直接返回错误码。线程独立的资源:线程ID,一组寄存器、栈、调度优先级、策略、信号屏蔽字、errno和private data;线程ID:pthread_t,实现可以用一个结构来表示,因此不能直接操作,需要用#include <pthread.h>int pthre...
阅读全文
摘要:终端登录过程:init读取/ect/ttys,对每一个允许登陆的中断设备fork一次,子进程执行getty程序,getty为终端设备调用open函数(read | write),打开后设置filedes 0,1,2;getty输出login等待用户输入用户名,然后调用login程序(execle传入环境变量)。后者使用getpwnam获得用户口令登陆项,再调用getpass显示提示符提示用户输入...
阅读全文
摘要:8~11章主要讲进程相关的内容。 进程标示符(PID),0是调度进程,1通常是init进程,2一般是页守护进程(pagedaemon),负责虚拟内存的分页操作。 #include <unistd.h> pid_t getpid(void); pid_t getppid(void);//parent pid uid_t getuid(void); uid_t geteuid(void); g...
阅读全文
摘要:本章学习进程环境,主要是一些编译器、系统与程序直接的结合等方面的知识。常识部分略过,记录一些要点。main中return语句实质上仍然调用exit函数。使用atexit函数注册返回回调函数,其注册顺序与实际调用顺序相反。环境变量相关:全局变量environ可以直接读取环境变量表,函数getenv,setenv,putenv和unsetenv可以用来操作环境变量。#include <stdlib.h...
阅读全文
摘要:本章学习系统数据文件的接口,以及系统标识函数、时间和日期等信息函数。口令文件:/etc/passwd#include <pwd.h>struct passwd{char *pw_name;//用户名*char *pw_passwd;//加密口令uid_t pw_uid;//user id*gid_t pw_gid;...
阅读全文
摘要:本章学习ISO C,和一般C语言书籍中的内容大同小异,不过加入了Unix一些特有的扩展。流#include <stdio.h>#include <wchar.h>int fwide(FILE *fp, int mode);若mode=0,该函数确定流是否使用了宽字符集(注意不是Unicode),宽定向返回正值,字节定向返回负值,未定向返回0;如果流未定向,也可以使用mode参数将之定向;但该函数并...
阅读全文
摘要:今天玩了会Lubuntu,也试了一试最新的codelite,凭良心说codelite做的比code::blocks更好用,虽然功能没有后者强大,但是手感上更类似visual studio,快捷键也相仿。另外code::blocks使用xterm太瞎眼,改为xfce4-terminal,方法是将Environments settings-General settings-Terminal to la...
阅读全文
摘要:本章学习文件I/O。不带缓冲指的是每个读写操作都会调用内核中的一个系统调用。File descriptor相当于win下的文件句柄,一般0:stdin,1:stdout,2:stderr,在依从POSIX标准的系统中,使用宏STDIN_FILENO,STDOUT_FILENO和STDERR_FILENO来确定,最好不用硬编码。文件描述符的取值范围是0~OPEN_MAX。open f...
阅读全文
摘要:毕业前攻克这本基础书吧,虽然不一定做这个,但是这个方向还是很不错的。全书共计21章,这里主要记录要点和自己做的习题解答。编译环境是debian6.0.6+xfce4,用的ide是codeblocks 12.11(刚发布,手感不错,可惜不支持fakevim)Chapter1是综述,各方面的常识提示。工作目录:使用chdir函数更改,默认为~,从passwd文件中用户的登陆项中取得。I/O相关:...
阅读全文
摘要:桌面环境:Gnome3安全类基本不需要系统辅助easystroke,鼠标手势clipit,剪贴板增强(我这里使用原生的Gpaste有点问题)gnome-extension,按自己需求装;ubuntu tweak,常用文档类leapad,适合txt等常用文档,代替gedit,类似win的记事本,速度快,自动识别编码;可以显示行号、自动缩进。Vim(emacs),浏览、编辑代码或其他需要高亮的文件li...
阅读全文
摘要:昨天晚上Ubundu突然没声了,是彻底的没声音——不管是系统的还是应用程序或者网页的。google了一下,发现这问题还是比较频繁出现的,而且个人症状有些略微的差异。有些是系统声还在,但是应用程序没了,有些却完全相反。解决的方法也是不一而足,见仁见智。尽早折腾了一会,突然有声了(当时正开着播放器做测试,霎时被震晕了,后来神经还发了半天麻),虽然很莫名其妙,不过还是记录一下过程给下次做个参考。 因为以前都有声音,是突然没声的,近期也没有大的系统更新,所以排除驱动问题。 在系统工具—声音里面检查是否不小心mute了某些选项,结果是一切正常。 开始收集网上的方法,首先是检查声卡权限: sh...
阅读全文
浙公网安备 33010602011771号