
Linux
记录Linux学习过程
聚沙塔
这个作者很懒,什么都没留下…
展开
-
命名管道实现进程间通信--石头、剪刀、布游戏
下面这个程序利用命名管道实现进程间通信原创 2014-06-01 22:50:22 · 4097 阅读 · 3 评论 -
tac命令的实现
此程序实现简化的tac命令,首先将文件指针置于文件尾,从后向前移动指针,将两个换行符'\n'间的内容作为一行输出。#include#include#include#include#include #include #define BUFSIZE 4096char buf[BUFSIZE];void reverse(int fp); void main(int argc原创 2014-06-02 00:08:29 · 2042 阅读 · 0 评论 -
随机带权选取文件中一行
本程序实现从文件中随即选取一行,每行被选中的概率与改行长度成正比。程序用一次遍历,实现带权随机选取。算法:假设第i行权重wi(i=1...n).读取到文件第i行时,以概率wi/(w1+w2+...+wi)用该行替换上一轮被选中的行,直至读取文件结束。这样可以从数学上保证i行被选中的概率为wi/(w1+w2+...+wn);原创 2014-06-02 00:11:47 · 1118 阅读 · 0 评论 -
递归查找无效的符号链接
本程序实现在指定目录下递归查找无效的符号链接。1.设计思路逐个读取给定目录中的目录项,判断类型(1)若为目录,则读取该目录中的目录项并判断类型;(2)若为链接文件,则读取出其指向文件的名称(绝对/相对路径);若内容为绝对路径(以/开头),直接作为目标文件的路径;若内容为相对路径(不以/开头),将链接文件所在目录的路径作为前缀;这样构造出目标文件的路径,尝试用stat函数原创 2014-06-02 00:14:23 · 1401 阅读 · 0 评论 -
Linux的proc文件系统
proc为一个内核数据结构接口,用户空间和内核空间可以通过该接口通信,与普通文件不同的是,这些虚拟文件的内容都是动态创建的。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过 proc得到系统的信息,并可以改变内核的某些参数。proc文件系统可以被用于收集有用的关于系统和运行中的内原创 2014-06-02 10:21:49 · 1393 阅读 · 0 评论 -
利用autotools工具制作从源代码安装的软件
编写程序(helloworld.c)并将其放到一个单独目录进入该目录,依次执行一下9步:原创 2014-06-02 23:27:53 · 951 阅读 · 0 评论 -
linux下的c程序排版工具:indent
Linux下有一个方便的c语言程序排版工具,只要选择恰当的参数,可以轻易地使自己的程序具有统一的风格。indent参数众多,可以自行查看man文档,下面是我个人使用的命令:indent -i2 -bli 0 -sob -npsl input.c -o output.c其中:-i n:设置缩排的格数-bli n:设置{ }缩排的格数-sob:删除多余的空白行-npsl:原创 2014-06-14 20:05:25 · 3156 阅读 · 0 评论 -
线程间的参数传递
在多线程编程中,常常需要从主线程传递参数给子线程或在主线程中获得子线程的计算结果,若使用全局变量实现,必然需要对临界区保护,因此导致大量的切换工作造成效率的低下;而利用进程间的参数传递可以解决这一问题。两个方向的参数传递:1.主线程向子线程传递参数:通过函数 int pthread_create(pthread_t *thread, const pthread_attr_t *原创 2014-06-15 17:48:23 · 4476 阅读 · 0 评论 -
Linux下利用core dump文件调试
一.生成coredump文件coredump又叫核心转储,当程序运行过程中异常退出时,由操作系统把程序当前的内存状况存储在一个core文件中,叫coredump.为了生成coredump文件,需要对环境做如下设置:1.ulimit -c unlimited此命令会取消对转储文件大小的限制,因为系统通常会默认不保存coredump文件,也即使用ulimit-c查看的结果为0.需要原创 2017-08-02 22:24:55 · 1109 阅读 · 0 评论