
linux编程
Gamal_xin
这个作者很懒,什么都没留下…
展开
-
高手必读:Linux编程经典书籍
如何才能成为一个Linux编程高手?在这里笔者建议大家多读经典书籍,多读优秀的开源代码,多写代码,除了这些别无它法。接下来本文就向大家推荐一些公认的Linux编程经典图书。想要成为真正的Linux编程高手,这些书籍是绝对的经典必看。 第一阶段: Linux统入门与提高 使用与管理linux系统是linux程序开发人员必备入门技能,《鸟哥的linux私房菜》和《li转载 2014-07-07 17:24:08 · 4266 阅读 · 0 评论 -
【Linux入门学习之】数据流重定向(二)
Linux中数据流重定向的意思是将某个命令执行后应该要出现在屏幕上的数据传输到其他地方,例如文件或设备之类。一、stadard output与standard error output首先介绍一下命令执行过程的数据传输情况:图中的standard output和standard error output分别代表“标准输出”和“标准错误输出”。这两个命转载 2014-08-05 09:33:13 · 457 阅读 · 0 评论 -
【Linux学习】linux源代码版本控制RCS
RCS是在SCCS源代码控制系统之后开发的。SCCS是由AT&T在系统V版本的Unix中引入的最初的源代码控制系统,现在它已经是X/Open标准的一部分了。RCS的功能与SCCS非常类似,但是它有着更加直观的接口和一些其他的选项,所以SCCS基本上已经被RCS所取代。RCS只保存版本之间的不同之处,因此它非常节省存储空间。RCS对个人的开发项目来说非常容易使用,因此转载 2014-08-05 10:40:12 · 727 阅读 · 0 评论 -
Linux中link,unlink,close,fclose详解
每一个文件,都可以通过一个struct stat的结构体来获得文件信息,其中一个成员st_nlink代表文件的链接数。 当通过shell的touch命令或者在程序中open一个带有O_CREAT的不存在的文件时,文件的链接数为1。(硬链接,) 通常open一个已存在的文件不会影响文件的链接数。open的作用只是使调用进程与文件之间建立一种访问关系,即open之后转载 2014-08-20 10:59:01 · 410 阅读 · 0 评论 -
【Linux入门学习之】Linux关机命令总结
Linux关机应该采用正确的关机方法。Windows由于是单用户、“假多”任务的情况,所以即使你的计算机关机,也不会对别人造成影响。不过在Linux中,由于每个程序都是在后台执行的,因此,在你看不到的屏幕背后可能有很多人同时在你的主机上工作。而且,若不正常关机可能会造成文件系统的损毁。所以,正常情况下,要关机时需要注意下面几件事情:(1)查看系统的使用状态。要看目前有谁转载 2014-08-05 07:59:10 · 444 阅读 · 0 评论 -
pipe popen mkfifo
pipe(建立管道) 相关函数mkfifo,popen,read,write,fork表头文件#include定义函数int pipe(int filedes[2]);函数说明pipe()会建立管道,并将文件描述词由参数filedes数组返回。filedes[0]为管道里的读取端,filedes[1]则为管道的写入端转载 2014-08-20 19:25:53 · 700 阅读 · 0 评论 -
pipe与popen
1。 PIPE 这种形式的IPC被各个版本的UNIX版本与衍生版本(包括linux)所支持,尤其是半双工的PIPE在现实的应用种使用的最多。 半双工的PIPE只能使用在具有亲缘关系的进程种,最常见的就是父子进程中,通常的使用方法是父进程调用pipe函数,然后再调用fork函数产生一个子进程,在父子进程中关闭自己不需要的管道,然后冲过复制文件描述符来确定最终的输入和输出。转载 2014-08-20 19:28:08 · 2828 阅读 · 0 评论 -
Linux下IPC总结
IPC进程间通信(Inter-Process Communication)就是指多个进程之间相互通信,交换信息的方法。Linux IPC基本上都是从Unix平台上继承而来的。主要包括最初的Unix IPC,System V IPC以及基于Socket的IPC。另外,Linux也支持POSIX IPC。System V,BSD,POSIX System V是Unix操作系统最早转载 2014-09-07 10:00:28 · 601 阅读 · 0 评论 -
#error用法
/**检查编译此源文件的编译器是不是C++编译器*如果使用的是C语言编译器则执行#error命令*如果使用的是 C++ 编译器则跳过#error命令*/#ifndef __cplusplus#error 亲,您当前使用的不是C++编译器噢!#endif#include int main(){printf("He转载 2014-08-25 15:28:45 · 1053 阅读 · 0 评论 -
char int 取值范围
-128~127-127---->0x111111 -32768~32767原创 2014-08-25 16:16:50 · 906 阅读 · 0 评论 -
linux生产者,消费者问题
pthread_cond_wait() :用于阻塞当前线程,等待别的线程使用pthread_cond_signal()或pthread_cond_broadcast来唤醒它。 pthread_cond_wait() 必须与pthread_mutex 配套使用。pthread_cond_wait()函数一进入wait状态就会自动release mutex。当其他线程通过pthread_cond_原创 2014-08-27 11:17:08 · 540 阅读 · 0 评论 -
fork,vfork,clone的区别
fork和clone的区别: Linux将创建进程和执行所创建的进程分为2个阶段。第一个阶段是创建。父进程首先复制子进程,所复制出来的子进程拥有自己的任务结构体和系统堆栈,除此之外所有资源都与父进程共享。Linux提供两种方式复制子进程:一个是fork(),另外一个是clone()。fork()函数复制时将父进程的所以资源都通过复制数据结构进行了复制,然后传递给子进程,所以fork()函数不原创 2014-09-02 22:54:33 · 896 阅读 · 0 评论 -
down, up, sem_p, sem_v, sem_wait, sem_post 的区别
linux 信号量操作函数2014-03-05 11:59cheng6211 | 分类:Linux | 浏览144次down, up, sem_p, sem_v, sem_wait, sem_post. 有什么区别undefined reference to `down' ,需要包含哪个头文件?分享到:转载 2014-08-05 13:00:16 · 4152 阅读 · 0 评论 -
【linux入门学习之】介绍Linux重定向的使用(一)
摘要:Linux重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的输出而是希望输出到某一文件中就可以通过Linux重定向来进行这项工作。 Linux默认输入是键盘,输出是显示器。你可以用重定向来改变这些设置... Linux重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的输出而是希望转载 2014-08-05 09:32:42 · 379 阅读 · 0 评论 -
强烈推荐Linux深入学习必读的几本书
2012-10-01 21:00:40 成为一名精通 Linux程序设计的高级程序员一直是不少朋友孜孜以求的目标。根据中华英才网统计数据,北京地区 Linux 程序员月薪平均为 Windows程序员的 1.8 倍、Java 程序员的 2.6 倍, Linux 程序员年终奖金平均为 Windows 程序员的 2.9倍。同时数据显示,随着工作经验的增长, Linux转载 2014-07-07 17:20:51 · 2175 阅读 · 0 评论 -
feof ferror
1 文件结束检测函数feof函数调用格式:feof(文件指针);功能:判断文件是否处于文件结束位置,如文件结束,则返回值为1,否则为0。2 读写文件出错检测函数ferror函数调用格式: ferror(文件指针); 功能:检查文件在用各种输入输出函数进行读写时是否出错。如ferror返回值为0表示未出错,否则表示有错。.3 文件出错标志和文件结束标志置0函数clearer原创 2014-08-04 10:52:03 · 693 阅读 · 0 评论 -
dup和dup2
dup和dup2也是两个非常有用的调用,它们的作用都是用来复制一个文件的描述符。它们经常用来重定向进程的stdin、stdout和stderr。这两个函数的 原形如下:#include int dup( int oldfd ); int dup2( int oldfd, int targetfd ) 利用函数dup,我们可以复制一个描述符。传给该函数原创 2014-08-04 10:22:58 · 349 阅读 · 0 评论 -
linux分几种模式?linux 单用户模式作用是什么?
0:关机 1:单用户模式 2:无网络支持的多用户模式 3:有网络支持的多用户模式 4:保留,未使用 5:有网络支持有X-Window支持的多用户模式 6:重新引导系统,即重启 Linux 系统处于正常状态时,服务器主机开机(或重新启动)后,能够由系统引导器程序自动引导 Linux 系统启动到多用户模式,并提供正常的网络服务。如果系统管理员需要进行系统维护或系统出现启动异常时,就需要进原创 2014-08-05 08:39:35 · 6255 阅读 · 0 评论 -
【Linux入门学习之】Linux连接文件:硬连接和软连接
Linux下面的连接文件有2种:一种是类似与Windows的快捷方式功能的文件,可以让我们快速连接到目标文件,称为符号连接(symbolic link);另一种则是通过文件系统的inode连接产生新文件名,而不是产生新文件,称为硬连接(hard link)。一、hard link(硬连接或实际连接)在linux文件系统中,每个文件都会占用一个inode,文件内容由ino转载 2014-08-05 10:29:42 · 495 阅读 · 0 评论 -
【Linux】线程同步之信号量同步
linux中两种基本的同步方法是信号量和互斥量。这两种方法很相似,而且它们可以相互通过对方来实现。信号量概述下面介绍用信号量进行同步。信号量概念由荷兰科学家Dijkstra首先提出。信号量是一个特殊类型的变量,它可以被增加或者减少。但对其的关键访问被保证是原子操作,即使在一个多线程程序中也是如此。信号量有两种类型:转载 2014-08-05 11:54:35 · 357 阅读 · 0 评论 -
linux中的pipe和fifo的区别
linux中的pipe和fifo的区别在linux进程间通信(IPC)可以通过信号量、文件系统、消息队列、共享内存还有管道来实现的。其中消息队列、内存管理是在System V中提出的。进程通信间涉及到了管道,而且管道在shell命令中也大有用处。那就简要说说管道:管道顾名思义,你可以将其理解为日常生活中的管子,一边流入,一边流出。它可以有半双工和全双工。半双工就转载 2014-08-05 12:31:41 · 2898 阅读 · 0 评论 -
【Linux入门学习之】vi/vim编辑器必知必会
一、我们为什么要学习vim编辑器?Linux的命令行界面下面有非常多的文本编辑器。比如经常听说的就有Emacs、pico、nano、joe与vim等。vim可以看做是vi的高级版。我们为什么一定要学习vim呢?有以下几个原因:(1)所有的Unix like系统都会内置vi文本编辑器,其他的文本编辑器则不一定会存在。(2)很多软件的编辑接口都会主动调用vi。(3)转载 2014-08-05 08:04:26 · 359 阅读 · 0 评论 -
【Linux入门学习之】Linux文件权限与目录配置(已修改过)
一、Linux的文件权限Linux最优秀的地方之一在于它的多用户、多任务环境。而为了让各个用户具有较保密的文件数据,文件的权限管理就相当重要了。Linux一般将文件可存取访问的身份分为三个类别:owner(文件所有者)、group(用户组)、others(其他人)。Linux用户组最有用的功能之一就是,当你在团队开发资源的时候,每个帐号可以有多个用户组的支持。首先介转载 2014-08-05 08:28:44 · 545 阅读 · 0 评论 -
【Linux】进程间通信-命名管道FIFO
命名管道概述如果我们要在不相关的进程间交换数据,那么使用FIFO文件将会十分方便。FIFO文件通常也称为命名管道(named pipe)。命名管道是一种特殊类型的文件,它在文件系统中以文件名的形式存在。创建命名管道创建命名管道一般有两种方式:命令行方式一个比较旧的方式是:mknod filename p这个命令并未出现转载 2014-08-05 12:30:06 · 499 阅读 · 0 评论 -
【Linux】进程间通信-信号量详解及编程实例
前面一篇文章线程同步之信号量同步 讲的是线程之间的信号量,这篇讲的更加具有通用性,能够实现进程之间的同步。信号量概述信号量定义:它是一个特殊变量,只允许对它进行等待和发送信号这两种操作。P(信号量变量sv):等待。如果sv大于0,减小sv。如果sv为0,挂起这个进程的执行。V(信号量变量sv):发送信号。如果有进程被挂起等待sv,使其恢复执行。如果没有进行被转载 2014-08-05 12:42:06 · 438 阅读 · 0 评论 -
linux多进程共享内存
shmget函数原型shmget(得到一个共享内存标识符或创建一个共享内存对象)所需头文件#include #include 函数说明得到一个共享内存标识符或创建一个共享内存对象并返回共享内存标识符函数原型int shmget(key_t key, size_t size, in转载 2014-09-02 08:58:29 · 1320 阅读 · 0 评论