
Linux 相关
文章平均质量分 57
liwentao1091
这个作者很懒,什么都没留下…
展开
-
实际用户ID,有效用户ID及设置用户ID
实际用户ID,有效用户ID和设置用户ID 看UNIX相关的书时经常能遇到这几个概念,但一直没有好好去理清这几个概念,以致对这几个概念一直一知半解。今天好好区分了一下这几个概念并总结如下。说白了这几个UID引出都是为了系统的权限管理。 下面分别用RUID, EUID转载 2011-07-11 11:01:53 · 882 阅读 · 0 评论 -
《 Unix环境高级编程 》笔记
《 Unix环境高级编程 》笔记 本书全面介绍了UNIX系统的程序设计界面—**提供的许多函数。 前15章着重于理论知识的阐述,主要内容包括**。 在此基础上,分别按章介绍了多个应用实例,包括如何**等。译者序(电子版无)译者简介(电子版无)前言(电子版无)【第1章 UNIX基础知识】一、操作系统为程序提供服务二、登录名/etc/转载 2011-06-20 11:57:00 · 1334 阅读 · 1 评论 -
linux下ioctl函数学习
一、 什么是ioctl。ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下: int ioctl(int fd, ind cmd, …);其中fd就是用户程序打开设备时使用open函数返回的文件标示符,cmd就是用户程序对设备的控制命令,至于后面的省略转载 2011-06-27 10:29:00 · 422 阅读 · 0 评论 -
Linux重定向详解
I/O重定向详解及应用实例 1、 基本概念(这是理解后面的知识的前提,请务必理解) a、 I/O重定向通常与 FD有关,shell的FD通常为10个,即 0~9; b、 常用FD有3个,为0(stdin,标准输入)、1(stdout,标准输出)、2(stderr,标准错误输出),默认与keyboard、monitor、monitor有关; c、 用 来改变送出的数据信道(stdout, st转载 2011-06-26 21:44:00 · 392 阅读 · 0 评论 -
库函数调用和系统调用的区别
库函数是语言本身的一部分,而系统函数是内核提供给应用程序的接口,属于系统的一部分。 函数库调用是语言或应用程序的一部分,而系统调用是操作系统的一部分。你要确保弄懂“trap(自陷)”这个关键字的含义。系统调用是在操作系统内核发现一个“trap”或中断后进行的(其中系统调用是原创 2011-08-08 10:42:32 · 710 阅读 · 0 评论 -
Linux0.11内核--系统中断处理程序int 0x80实现原理 .
系统调用是一个软中断,中断号是0x80,它是上层应用程序与Linux系统内核进行交互通信的唯一接口。通过int 0x80,就可使用内核资源。不过,通常应用程序都是使用具有标准接口定义的C函数库间接的使用内核的系统调用,即应用程序调用C函数库中的函数,C函数库中再通过int 0x8转载 2011-08-08 11:06:44 · 1479 阅读 · 0 评论 -
Linux进程间通信 共享内存
共享内存(Shared Memory) 共享内存区域是被多个进程共享的一部分物理内存。如果多个进程都把该内存区域映射到自己的虚拟地址空间,则这些进程就都可以直接访问该共享内存区域,从而 可以通过该区域进行通信。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域转载 2011-08-09 15:32:46 · 818 阅读 · 0 评论 -
对内存管理的思考
内核的虚拟内存被连续映射到最低端的物理内存。这是所有问题的开始。为什么要把内核的虚拟地址空间连续地映射到物理内存最低端?这个根本不是个问题。开发人员或是出于效率的原因或是出于实现的原因,就是做了这样的设计。但这种设计却引发了很多令人困惑的问题。假设我们使用32位版转载 2011-08-09 13:12:27 · 480 阅读 · 0 评论 -
对Linux堆内存释放的总结
Linux用户进程是如何释放内存的Linux进程使用内存的基本流程: 见图1从图中我们可以看出,进程的堆,并不是直接建立在Linux的内核的内存分配策略上的,而是建立在glibc的堆管理策略上的(也就是glibc的动态内存分配策略上),堆的管理是由glibc进行转载 2011-08-25 16:05:10 · 1139 阅读 · 0 评论 -
Linux ELF
ELF = Executable and Linkable Format,可执行连接格式,是UNIX系统实验室(USL)作为应用程序二进制接口(Application Binary Interface,ABI)而开发和发布的。扩展名为elf。工具接口标准委员会(TIS)选择了正在发展中的ELF标准作为工作在32位INTEL体系上不同操作系统之间可移植的二进制文件格式。假定开发者定义了一个二原创 2011-06-28 21:51:00 · 487 阅读 · 0 评论 -
关于C语言中getopt()函数的使用方法
在Linux中,用命令行执行可执行文件时可能会涉及到给其加入不同的参数的问题,例如:./a.out -a1234 -b432 -c -d程序会根据读取的参数执行相应的操作,在C语言中,这个功能一般是靠getopt()这个函数,结合switch语句来完成的,转载 2011-07-31 20:12:46 · 737 阅读 · 0 评论 -
关于fork()函数的精辟分析
第一贴:cu上关于fork()函数的精辟分析声明:在别人的博客上看到这篇文章,真的很精辟,把问题一下子讲清楚了。所以,特意转贴在此,向各位高人致敬,也向原贴主致谢!本人不改变原贴的风貌。 查看原文转载 2011-07-12 18:09:44 · 481 阅读 · 0 评论 -
用户(User)和用户组(Group)配置文件详解
作者:北南南北来自:LinuxSir.Org摘要:本文详解用户(User)和用户组(Group)的配置文件,本文是《Linux 用户(User)和用户组(Group)管理概述》文档的关健部份的细化;通过本文,您至少能明白/etc/passwd /etc/group ,以及什么是U转载 2011-07-14 17:10:39 · 515 阅读 · 0 评论 -
Linux 用户(user)和用户组(group)管理概述
作者:北南南北来自:LinuxSir.Org摘要:本文主要讲述在Linux 系统中用户(user)和用户组(group)管理相应的概念;用户(user)和用户组(group)相关命令的列举;其中也对单用户多任务,多用户多任务也做以解说,本文应该说是比较基础的文档;++++++++转载 2011-07-14 18:38:27 · 689 阅读 · 0 评论 -
sigwait()的一些应用
#include #include #include int main(void) { int signalcount = 0; int signo; int signum = SIGINT; sigset_t sigset; if ((sigemptyset(&sigset)原创 2011-07-26 16:44:06 · 739 阅读 · 0 评论 -
POSIX多线程中的pthread_cond_wait() 函数
由于工作站软件的移植牵涉到这方面的内容, 搜一最近一直在学习Linux线程方面的知识!由于这本书上没有将条件变量的问题,所以不能理解的一个函数就是pthread_cond_wait(). 今天终于有点明白了,赶快记下心得! 条件变量的结构为pthread_cond_t转载 2011-07-26 15:01:00 · 590 阅读 · 0 评论 -
多线程程序与fork() .
多线程程序里不准使用forkUNIX上C++程序设计守则3准则3:多线程程序里不准使用fork在多线程程序里,在”自身以外的线程存在的状态”下一使用fork的话,就可能引起各种各样的问题.比较典型的例子就是,fork出来的子进程可能会死锁.请不要,在不能把握问题的原委的情况下就在转载 2011-07-27 15:08:38 · 710 阅读 · 0 评论 -
sigsuspend 函数使用 及与 pause 区别
sigsuspend函数 :sigsuspend函数接受一个信号集指针,将信号屏蔽字设置为信号集中的值,在进程接受到一个信号之前,进程会挂起,当捕捉一个信号,首先执行信号处理程序,然后从sigsuspend返回,最后将信号屏蔽字恢复为调用sigsuspend之前的值。#inclu转载 2011-07-20 10:30:19 · 10742 阅读 · 0 评论 -
《UNIX 环境高级编程》源代码在Linux环境运行方法
以下是在网上找到的修改教程,感谢原作者,按以下步骤尝试一遍就通了,文章后记录尝试过程中的一些经验,算是防止健忘吧。《UNIX 环境高级编程》每个历程中,都会有这样一行: #include "apue.h" 这个头文件是作者把把每个例程中常用的标准头文件,一些常用的出错处理函数(e转载 2011-07-20 13:35:31 · 2496 阅读 · 1 评论 -
关于虚拟内存和物理内存及它们之间的映射 .
Windows 2000 使用基于分页机制的虚拟内存。每个进程有4GB的虚拟地址空间。基于分页机制,这4GB地址空间的一些部分被映射了物理内存,一些部分映射硬盘上的交换文件,一些部分什么也没有映射。程序中使用的都是4GB地址空间中的虚拟地址。而访问物理内存,需要使用物理地址。 下转载 2011-07-29 11:08:47 · 2329 阅读 · 1 评论