linux
文章平均质量分 72
酱油p
这个作者很懒,什么都没留下…
展开
-
ubuntu中如何切换中文输入法
一般安装ubuntu的时候都是用默认的英语来安装,免得在安装的过程中下载 语言包(下载速度很慢)。安装玩之后又怎样切换呢1.从system settings –>language support 点击 install/remove languages 勾选 chinese(simplified) 点击apply changes 输入密码,等待下载安装。安装完后重启N遍电脑,语言还是英文的,转载 2013-09-26 10:24:26 · 665 阅读 · 0 评论 -
linux网络编程——消息队列
消息队列是内核地址空间中的内部链表,通过linux内核在各个进程之间传递内容。消息顺序地发送到消息队列中,并且以几种不同的方式从队列中获取,每个消息队列可以用IPC标识符号唯一的进行识别。内核中的消息队列是通过IPC的标志符来区别的,不同的消息队列之间是相对独立的。每个消息队列中的消息,又构成独立的链表。1)消息缓冲区的结构 常用的结构msgbuf结构。(我们也可以通过这个结构定原创 2013-10-24 12:32:40 · 554 阅读 · 0 评论 -
为什么出现漏洞
#include #include #include #include #define NUM_THREADS 6void *thread_function(void *arg);int main(){ int res; pthread_t a_thread[NUM_THREADS]; void *thread_result; int lots_of_threads; fo原创 2013-11-12 11:29:14 · 391 阅读 · 0 评论 -
【c语言基础必备】makefile经典教材
http://blog.csdn.net/ruglcc/article/details/7814546转载 2014-01-07 16:22:02 · 356 阅读 · 0 评论 -
【unix环境】unix环境高级编程——环境配置
背景说明:学习《UNIX环境高级编程》,里面的示例程序用到了作者写的模块。把第一个示例代码敲入,结果当头一棒。咦,怎么编不过去。网上找资料发现好人不少,问题终于解决。特此,把我的解决步骤附上如下。^_^参考文章:http://linux.chinaunix.net/techdoc/system/2009/02/08/1061504.shtmlhttp://www.l转载 2014-01-08 15:36:46 · 411 阅读 · 0 评论 -
linux套接字编程
套接字连接的过程如同(客户)打一个电话到一个大公司,接线员(服务器进程)接听电话并把它转接到你要找的部门,然后再从那里转到你要找的人(服务器套接字),然后接线员(服务器进程)再继续转接其它(客户)的电话。 套接字有本地套接字和网络套接字两种。本地套接字的名字是Linux文件系统中的文件名,一般放在/tmp或/usr/tmp目录中;网络套接字的名字是与客户连接的特定网络有关的服务标识符原创 2014-01-08 10:09:47 · 406 阅读 · 0 评论 -
【apue】dup,dup2的剖析
dup和dup2都可用来复制一个现存的文件描述符,使两个文件描述符指向同一个file结构体。如果两个文件描述符指向同一个file结构体,File Status Flag和读写位置只保存一份在file结构体中,并且file结构体的引用计数是2。如果两次open同一文件得到两个文件描述符,则每个描述符对应一个不同的file结构体,可以有不同的File Status Flag和读写位置。请注意区转载 2014-01-09 16:01:23 · 386 阅读 · 0 评论 -
【apue】习题3.2:写一个与dup2功能相同的函数,要求不使用fcntl函数,并且要有正确的错误处理
思路:要产生新的fd,则要使用dup()函数,每调用一次dup,就会产生一个最小的newfd,循环调用dup,知道newfd到达需求的fd。原创 2014-01-10 11:18:42 · 418 阅读 · 0 评论 -
【linux小实践】linux下PING的c实现
大部分人用ping命令只是作为查看另一个系统的网络连接是否正常的一种简单方法。在这篇文章中,作者将介绍如何用C语言编写一个模拟ping命令功能的程序。ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个工具。ping命令的工作原理是:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文一模一样地传回给发送者,这有点象潜水艇声纳系统中使用的发声装置。例如转载 2014-02-21 11:09:01 · 909 阅读 · 0 评论 -
【codeblocks】codeblocks常用配置
1.先把编译环境,C库、C++库和Boost库装好,如下:sudoapt-get install build-essential* 有可能安装 build-essential后gdb就已经安装过了 sudo apt-get installgdb2. 在 Ubuntu 软件中心 中安装 Code::Blocks IDE这里可以参考本博客的另一篇文章,从源码编译开始安装转载 2014-03-23 16:37:46 · 938 阅读 · 0 评论 -
【APUE】linux中DIR,dirent,stat相关的结构体与用法
最近在看Linux下文件操作相关章节,遇到了这么几个结构体,被搞的晕乎乎的,今日有空,仔细研究了一下,受益匪浅。首先说说DIR这一结构体,以下为DIR结构体的定义:struct __dirstream { void *__fd; char *__data; int __entry_data转载 2014-03-24 09:50:41 · 377 阅读 · 0 评论 -
linux线程——如何理解pthread_cond_wait和pthread_cond_signal
关于pthread_cond_wait()函数的理解 int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex); 函数传入的参数mutex用于保护条件,因为我们在调用pthread_cond_wait时,如果条件不成立我们就进入阻塞,但是进入阻塞这个期间,如果条件变量改变了原创 2013-11-06 15:38:55 · 550 阅读 · 0 评论 -
linux线程——条件变量
条件变量是线程可用的另外一种同步机制。条件变量给多个线程提供了一个会合的场所。条件变量与互斥量一起使用时,允许线程以无竞争的方式等待特定的条件发生。 条件本身是由互斥量保护的。线程在改变条件状态前必须首先锁住互斥量,其他线程在获得互斥量之前不会察觉到这种改变,因为必须锁定互斥量以后才能计算条件。 条件变量使用之前必须首先进行初始化,pthread_cond_t数据类原创 2013-11-05 17:57:14 · 459 阅读 · 0 评论 -
linux线程——读写锁rwlock
前面我们在学习互斥锁mutex时候,mutex的状态只有两种——锁住or空闲。读写锁rwlock有三种状态:读模式枷锁,写模式加锁,不加锁。1. 特性: 一次只有一个线程可以占有写模式的读写锁, 但是可以有多个线程同时占有读模式的读写锁。正是因为这个特性,当读写锁是写加锁状态时,在这个锁被解锁之前, 所有试图对这个锁加锁的线程都会被阻塞。当读写锁在读加锁状态时,原创 2013-11-05 16:21:23 · 441 阅读 · 0 评论 -
linux 管道
管道是Linux中很重要的一种通信方式,是把一个程序的输出直接连接到另一个程序的输入,常说的管道多是指无名管道,无名管道只能用于具有亲缘关系的进程之间,这是它与有名管道的最大区别。有名管道叫named pipe或者FIFO(先进先出),可以用函数mkfifo()创建。Linux管道的实现机制在Linux中,管道是一种使用非常频繁的通信机制。从本质上说,管道也是一种文件,但它又和一般的文转载 2013-10-23 15:43:47 · 444 阅读 · 0 评论 -
unix环境高级编程的源码安装使用方法
心血来潮在新配置好的VIM中来实验unix环境高级编程的源码时候,编译不成功,看了一下read文档,编译方法如下:1)现在源码http://www.apuebook.com/2)将下载的sec.2e.tar.gz解压到~/ 目录3)修改Make.defines.linux文件进入解压的文件夹apue.2evim Make.defines.linux找到WKDIR=/原创 2013-10-29 16:39:45 · 429 阅读 · 0 评论 -
linux网络编程——size_t与ssize_t
今天在《linux网络编程》一书中遇见了size_t和ssize_t两个数据类型,查了下具体是什么内容1)size_t是什么类型的? 为了增强程序的可移植性,便有了size_t,它是为了方便系统之间的移植而定义的,不同的系统上,定义size_t可能不一样。在32位系统上 定义为 unsigned int 也就是说在32位系统上是32位无符号整形。在64位系统上定义为 unsigned原创 2013-10-23 09:46:09 · 707 阅读 · 0 评论 -
Linux 管道通信
一、定义 管道是单向的、先进先出的。它将一个程序的输入和另一个程序的输出连接起来。数据被一个进程读出后,将被从管道中删除。分为无名和有名管道两种。前者用于父进程和子进程间的通信,后者用于同一系统的两个进程间通信。 二、无名管道 int pipe(int fd[2]); 其中,fd[0]用于读管道,fd[1]用于写管道。若成功则返回零,否则返回-1,错转载 2013-10-23 15:56:21 · 498 阅读 · 0 评论 -
linux signal 函数
linux中信号机制里面最简单的接口就是signal函数了。原型如下:#includevoid ( * signal ( int signo , void ( * func ) ( int ) ) ) ( int ) ; signo参数是信号名func :(1)SIG_IGN 直接忽略 (2)SIG_D原创 2013-11-01 21:58:18 · 438 阅读 · 0 评论 -
linux线程——创建
Linux的线程实现是在内核以外来实现的,内核本身并不提供线程创建。但是内核为提供线程【也就是轻量级进程】提供了两个系统调用__clone()和fork (),这两个系统调用都为准备一些参数,最终都用不同的参数调用do_fork()核内API。do_fork()提供了很多参数,包括CLONE_VM(共享内存空间)、CLONE_FS(共享文件系统信息)、CLONE_FILES(共享文件描述符表)、C转载 2013-11-03 21:28:49 · 462 阅读 · 0 评论 -
linux线程——2——线程属性
线程属性由数据结构pthread_attr_t结构表示,其定义如下所示:typedef struct { int detachstate; 线程的分离状态 int转载 2013-11-03 21:50:25 · 449 阅读 · 0 评论 -
linux线程——pthread_exit()与pthread_join()
在前文讨论了线程创建的一些基本东西,这里讨论有哪些方法可以使线程终止,线程终止又是如何与创建所需的参数进行关联的。一,正常终止 线程在执行完成之后,正常终止。二,线程取消2.1 线程取消的定义 一般情况下,线程在其主体函数退出的时候会自动终止,但同时也可以因为接收到另一个线程发来的终止(取消)请求而强制终止。2.2 线程取消的语义 线程取消的方法是向目原创 2013-11-04 09:28:29 · 543 阅读 · 0 评论 -
linux线程——pthread_cleanup_push(),pthread_cleanup_pop()
线程可以安排它退出时需要调用的函数,这样的函数称为线程清理处理程序,线程可以建立多个清理处理程序。处理程序记录在栈中,也就是说它们的执行顺序与它们注册时的顺序相反。一、pthread_cleanup_push函数简介: 头文件:#include 函数定义:voidpthread_cleanup_push(void (*rtn)(void*),v原创 2013-11-04 20:53:27 · 630 阅读 · 0 评论 -
linux线程——互斥锁mutex
同步线程中的互斥量(mutex)本质上来说是一把锁,在访问共享资源前对互斥量进行加锁,在访问完以后进行释放互斥量上面的锁。一、创建与销毁注意:创建方式两种,销毁方式只有一种。 有两种方式创建锁——动态和静态。同时互斥变量使用pthread_mutex_t数据类型来表示。静态方式: POSIX定义了一个宏PTH原创 2013-11-05 10:25:53 · 595 阅读 · 0 评论 -
【unix环境】unix网络编程卷1——环境搭建(解决unp.h等源码编译问题)
下面开始用简单但典型的客户端和服务器端程序说明如何进行网络编程。这一小节讲的是客户端,一个用来连接并读取服务器发送来的时间的客户端。这里涉及到了编写代码,因此要搭建unix网络编程环境unix系统我没安装,系统不易获得而且也没必要安装unix。用linux是最佳选择。再者我本来就是ubuntu系统,所以就在ubuntu下搭建环境了。1,安装编译器,为了齐全还是安装一下bui转载 2014-01-08 13:33:18 · 520 阅读 · 0 评论