qiuri2008

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  linux 编程

上一页 1 2 3 4 下一页

内核及编程总结
摘要:动态链接库不是Linux独有的特性,在windows下面也存在这样的特性。一般来说,windows下面的动态连接库是以*.dll作为结尾的,而linux下面的动态连接库是以*.so结尾的。和静态链接库相比,动态连接库可以共享内存资源,这样可以减少内存消耗。另外,动态连接是需要经过操作系统加载器的帮助 阅读全文
posted @ 2017-08-16 11:13 江召伟 阅读(2382) 评论(1) 推荐(0)

摘要:在很多人的眼里,C语言和linux常常是分不开的。这其中的原因很多,其中最重要的一部分我认为是linux本身就是C语言的杰出作品。当然,linux操作系统本身对C语言的支持也是相当到位的。作为一个真正的程序员来说,如果没有在linux下面用C语言编写过完整的程序,那么只能说他对C语言本身的理解还相关 阅读全文
posted @ 2017-08-16 11:05 江召伟 阅读(350) 评论(0) 推荐(0)

摘要:什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。 为什么要使用回调函数? 因为可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种 阅读全文
posted @ 2016-12-12 13:18 江召伟 阅读(1657) 评论(0) 推荐(0)

摘要:编译:把高级语言书写的代码转换为机器可识别的机器指令。编译高级语言后生成的指令虽然可被机器识别,但是还不能被执行。编译时,编译器检查高级语言的语法、函数与变量的声明是否正确。只有所有的语法正确、相关变量定义正确编译器就可以编译出中间目标文件。通常,一个高级语言的源文件都可对应一个目标文件。目标文件在 阅读全文
posted @ 2015-02-04 19:48 江召伟 阅读(439) 评论(0) 推荐(0)

摘要:自动变量假设您编写一个编译‘.c’文件生成‘.o’文件的规则:您怎样编写命令‘CC’,使它能够操作正确的文件名?您当然不能将文件名直接写进命令中,因为每次使用隐含规则操作的文件名都不一样。您应该使用make的另一个特点,自动变量。这些变量在规则每次执行时都基于目标和依赖产生新值。例如您可以使用变量‘... 阅读全文
posted @ 2015-02-02 19:24 江召伟 阅读(1997) 评论(0) 推荐(0)

摘要:正如我们所知道的,编程语句都有很多的基本数据类型,如char,inf,float等等,而在C和C++中还有一个特殊的类型就是无符号数,它由unsigned修饰,如unsigned int等。大家有没想过,就是因为这些不同的类型,而使大家编写的看似非常正确的程序出现了预想不到的错误呢?一、迷惑人的有符... 阅读全文
posted @ 2015-01-05 20:06 江召伟 阅读(321) 评论(0) 推荐(0)

摘要:关于代码的可重入性,设计开发人员一般只考虑到线程安全,异步信号处理函数的安全却往往被忽略。本文首先介绍如何编写安全的异步信号处理函数;然后举例说明在多线程应用中如何构建模型让异步信号在指定的线程中以同步的方式处理。应用中编写安全的信号处理函数 在开发多线程应用时,开发人员一般都会考虑线程安全,... 阅读全文
posted @ 2014-12-30 11:49 江召伟 阅读(2920) 评论(0) 推荐(2)

摘要:NAME syscall - 间接系统调用 SYNOPSIS #define _GNU_SOURCE #include <unistd.h> #include <sys/syscall.h> /* For SYS_xxx definitions */ int syscall(int number, 阅读全文
posted @ 2014-12-29 19:41 江召伟 阅读(20043) 评论(0) 推荐(0)

摘要:execl函数功能如下:启动一个可执行文件,并且对他进行传送参数。一些原型如下#include externchar**environ; intexecl(constchar*path,constchar*arg,...); intexeclp(constchar*file,constchar*ar... 阅读全文
posted @ 2014-12-15 10:38 江召伟 阅读(765) 评论(0) 推荐(0)

摘要:From:http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html花了很长时间整理的,感觉用起来很方便,共享一下。我的vim配置主要有以下优点:1.按F5可以直接编译并执行C、C++、java代码以及执行shell脚本,按“F8”可进... 阅读全文
posted @ 2014-12-13 16:47 江召伟 阅读(409) 评论(0) 推荐(0)

摘要:在前面《UNIX环境高级编程 文件描述符浅析》一文中所讲的I/O函数都是针对文件描述符。而对于标准I/O库,它们的操作都是围绕流来进行的。当用标准I/O库打开或创建一个文件时,我们已经使一个流与文件相结合。 一、流和FILE对象 当打开一个流时,标准I/O函数fopen返回一个指向FILE对象的指针 阅读全文
posted @ 2014-12-12 17:25 江召伟 阅读(487) 评论(0) 推荐(0)

摘要:<Uinx 环境高级编程笔记> 以前经常遇到两种I/O操作 一类是f打头的fopen, fread, fwrite 一类是没有f打头的open, read, fwrite 原来一个是UNIX I/O(在类Unix系统上实现),另一类是标准I/O(在很多系统上都有实现,包括windows) 使用标准I 阅读全文
posted @ 2014-12-12 17:25 江召伟 阅读(229) 评论(0) 推荐(0)

摘要:1、 进程组 组长不能创建新的 会话。 其它进程可以创建新的会话,创建后既成为会话首领,同时失去控制终端。2、 会话首领可以重新打开控制终端1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #incl... 阅读全文
posted @ 2014-12-02 17:26 江召伟 阅读(489) 评论(0) 推荐(0)

摘要:一、信号生命周期从信号发送到信号处理函数的执行完毕对于一个完整的信号生命周期(从信号发送到相应的处理函数执行完毕)来说,可以分为三个重要的阶段,这三个阶段由四个重要事件来刻画:信号诞生;信号在进程中注册完毕;信号在进程中的注销完毕;信号处理函数执行完毕。相邻两个事件的时间间隔构成信号生命周期的一个阶... 阅读全文
posted @ 2014-11-27 18:42 江召伟 阅读(465) 评论(0) 推荐(0)

摘要:一、信号及信号来源信号本质信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知... 阅读全文
posted @ 2014-11-27 15:16 江召伟 阅读(604) 评论(0) 推荐(0)

摘要:fg、bg、jobs、&、ctrl + z命令一、 &加在一个命令的最后,可以把这个命令放到后台执行 ,如gftp &,二、ctrl + z可以将一个正在前台执行的命令放到后台,并且处于暂停状态,不可执行三、jobs查看当前有多少在后台运行的命令jobs -l 选项可显示所有任务的PID,jobs的... 阅读全文
posted @ 2014-11-26 13:29 江召伟 阅读(620) 评论(0) 推荐(0)

摘要:【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后给了 阅读全文
posted @ 2014-11-26 11:26 江召伟 阅读(693) 评论(0) 推荐(0)

摘要:sigaction函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作)。 他是POSIX的信号接口,而signal()是标准C的信号接口(如果程序必须在非POSIX系统上运行,那么就应该使用这个接口) 给信号signum设置新的信号处理函数act, 同时保留该信号原有的信号处理函数ol 阅读全文
posted @ 2014-11-22 17:39 江召伟 阅读(3100) 评论(0) 推荐(0)

摘要:sigprocmask系统调用 使用条件: 1、有时候不希望在接到信号时就立即停止当前执行,去处理信号,同时也不希望忽略该信号,而是延时一段时间去调用信号处理函数。这种情况是通过阻塞信号实现的。 2、信号阻塞和忽略信号的区别。 阻塞的概念和忽略信号是不同的。操作系统在信号被进程解除阻塞之前不会讲信号 阅读全文
posted @ 2014-11-22 17:16 江召伟 阅读(650) 评论(0) 推荐(0)

摘要:今天碰到一个SIGHUP问题,再复习一遍: 有些信号的默认处理方式为“终止+core”,这里的core表示,进程终止时,会在进程的当前工作目录生产一个core文件,该文件是进程终止时的内存快照,以便以后供debugger调试用。 以下情况不会生产core文件: (1)为程序设置了set-user-I 阅读全文
posted @ 2014-11-21 19:57 江召伟 阅读(4400) 评论(0) 推荐(0)

上一页 1 2 3 4 下一页