Linux
热爱学习的栾宝宝
这个作者很懒,什么都没留下…
展开
-
linux下的C语言开发(十一):线程互斥
对于编写多线程的朋友来说,线程互斥是少不了的。在linux下面,编写多线程常用的工具其实是pthread_mutex_t。本质上来说,它和Windows下面的mutex其实是一样的,差别几乎是没有。希望对线程互斥进行详细了解的朋友可以看这里,该链接里面介绍了C++线程的线程锁等情况,在下一阶段希望能对其进行学习,继续初步的入门学习。#include <stdio.h>#in...转载 2019-12-30 14:58:14 · 109 阅读 · 0 评论 -
linux下的C语言开发(十):线程等待
和多进程一样,多线程也有自己的等待函数。这个等待函数就是pthread_join函数。那么这个函数有什么用呢?我们其实可以用它来等待线程运行结束。#include <stdio.h>#include <pthread.h>#include <unistd.h>#include <stdlib.h> void func_1(void* ...原创 2019-12-27 10:53:04 · 297 阅读 · 0 评论 -
linux下的C语言开发(九):多线程编程
多线程和多进程还是有很多区别的。其中之一就是,多进程是linux内核本身所支持的,而多线程则需要相应的动态库进行支持。对于进程而言,数据之间都是相互隔离的,而多线程则不同,不同的线程除了堆栈空间之外所有的数据都是共享的。说了这么多,我们还是自己编写一个多线程程序看看结果究竟是怎么样的。#include <stdio.h>#include <pthread.h>...原创 2019-12-27 10:40:10 · 223 阅读 · 0 评论 -
linux下的C语言开发(八):管道通信
Linux系统本身为进程间通信提供了很多的方式,比如说管道、共享内存、socket通信等。管道的使用十分简单,在创建了匿名管道之后,我们只需要从一个管道发送数据,再从另外一个管道接受数据即可。#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <string.h>...转载 2019-12-26 17:09:39 · 142 阅读 · 0 评论 -
linux下的C语言开发(七):信号处理
信号处理是linux程序的一个特色。用信号处理来模拟操作系统的中断功能,对于我们这些系统程序员来说是最好的一个选择了。要想使用信号处理功能,你要做的就是填写一个信号处理函数即可。一旦进程有待处理的信号处理,那么进程就会立即进行处理。#include <stdio.h>#include <stdlib.h>#include <signal.h> in...转载 2019-12-26 16:22:42 · 131 阅读 · 0 评论 -
linux下的C语言开发(六):进程创建+进程等待
1、进程创建在Linux下面,创建进程是一件十分有意思的事情。我们都知道,进程是操作系统下面享有资源的基本单位。那么,在Linux下面应该怎么创建进程呢?其实非常简单,一个fork函数就可以搞定了。但是,我们需要清楚的是子进程与父进程之间除了代码是共享的之外,堆栈数据和全局数据均是独立的.#include <unistd.h>#include <stdio.h&...原创 2019-12-24 11:36:34 · 404 阅读 · 0 评论 -
linux下的C语言开发(自动编译工具和config.h文件生成)
linux下的C语言开发(自动编译工具和config.h文件生成)在Linux下面,编写makefile是一件辛苦的事情。因此,为了减轻程序员编写makefile的负担,人们发明了autoconf和automake这两个工具,可以很好地帮我们解决这个问题。我们可以通过一个简单的示例来说明如何使用配置工具。(1)首先,编写源文件hello.c。#include <...转载 2019-12-24 11:17:42 · 704 阅读 · 0 评论 -
linux下的C语言开发(五):定时器
定时器是我们需要经常处理的一种资源。那linux下面的定时器又是怎么一回事呢?其实,在linux里面有一种进程中信息传递的方法,那就是信号。这里的定时器就相当于系统每隔一段时间给进程发一个定时信号,我们所要做的就是定义一个信号处理函数。#include <stdio.h>#include <time.h>#include <sys/time.h&g...原创 2019-12-24 10:44:17 · 254 阅读 · 0 评论 -
Linux下的C语言开发(四):动态库
动态链接库不是linux独有的特性,在windows下面也存在这样的特性。一般来说,windows下面的动态连接库是以*.dll作为结尾的,而linux下面的动态连接库是以*.so结尾的。和静态链接库相比,动态连接库可以共享内存资源,这样可以减少内存消耗。另外,动态连接是需要经过操作系统加载器的帮助才能被普通执行文件发现的,所以动态连接库可以减少链接的次数。有了这个特点,我们就不难发现为什么很多软...原创 2019-12-24 10:11:16 · 142 阅读 · 0 评论 -
Linux下C语言开发(三):静态库
在我们编写软件的过程当中,少不了需要使用别人的库函数。因为大家知道,软件是一个协作的工程。作为个人来讲,你不可能一个人完成所有的工作。另外,网络上一些优秀的开源库已经被业内广泛接受,我们也没有必要把时间浪费在这些重复的工作上面。既然说到了库函数,那么一般来说库函数分为两种方式:静态库和动态库。两者的区别其实很小,静态库是必须要链接到执行文件中去的,而动态库是不需要链接到最后的执行文件中...原创 2019-12-24 09:54:59 · 122 阅读 · 0 评论 -
Linux下的C语言开发(二):gdb调试
转自:https://blog.csdn.net/feixiaoxing/article/details/7199643编写代码过程中少不了调试。在windows下面,我们有visual studio工具。在linux下面呢,实际上除了gdb工具之外,你没有别的选择。那么,怎么用gdb进行调试呢?我们可以一步一步来试试看。#include <stdio.h> int i...转载 2019-12-15 15:34:56 · 101 阅读 · 0 评论 -
Linux下的C语言学习与开发(一):入门
部分内容转自:https://blog.csdn.net/feixiaoxing/article/details/7194756在很多人的眼里,C语言和linux常常是分不开的。这其中的原因很多,其中最重要的一部分我认为是linux本身就是C语言的杰出作品。当然,linux操作系统本身对C语言的支持也是相当到位的。作为一个真正的程序员来说,如果没有在linux下面用C语言编写过完整的程序,那...原创 2019-12-15 15:28:01 · 191 阅读 · 0 评论