• UNIX环境高级编程——环境变量表读取/添加/修改/删除

    时间:2022-12-23 16:21:01

    #include <stdio.h>#include <stdlib.h>#include <string.h>int main(){char* pValue;pValue = getenv("HOME"); // 起始目录(主目录) printf("$HOME ...

  • 《UNIX环境高级编程》学习心得 二

    时间:2022-12-18 14:53:55

    窝萌来看我们看到这本书里的第一个程序 #include "apue.h" #include <dirent.h> int main(int argc, char *argv[]) { DIR *dp; struct dirent *di...

  • UNIX环境高级编程——I/O多路转接(select、pselect和poll)

    时间:2022-11-21 18:56:50

    I/O多路转接:先构造一张有关描述符的列表,然后调用一个函数,直到这些描述符中的一个已准备好进行I/O时,该函数才返回。在返回时,它告诉进程哪些描述符已准备好可以进行I/O。poll、pselect和select这三个函数使我们能够执行I/O多路转接。一、select函数在所有依从POSIX的平台上...

  • UNIX环境高级编程-第三章习题

    时间:2022-11-01 22:00:37

    1,当读写磁盘文件时,read,write等函数确实是不带缓冲机制的吗?请说明原因。答:所有磁盘I/O都要经过内核的块缓存区(即内核的缓冲区高速缓存)。唯一例外的是对原始磁盘设备的I/O,但是我们不考虑这种情况。既然read或write的数据都要被内核缓冲,那么术语“不带缓冲的I/O”指的是在用户的...

  • UNIX环境高级编程 第11章 线程

    时间:2022-09-24 15:24:25

    使用C++调用pthread_cleanup_push( )时,下面的代码是无法编译通过的:pthread_cleanup_push(cleanup, "thread 1 first handler");如果编译,则编译器可能会提示:no matching constructor for initi...

  • UNIX环境高级编程——主线程与子线程的退出关系

    时间:2022-09-13 13:52:10

    我们在一个线程中经常会创建另外的新线程,如果主线程退出,会不会影响它所创建的新线程呢?下面就来讨论一下。1、  主线程等待新线程先结束退出,主线程后退出。正常执行。示例代码:#include <stdio.h>#include <stdlib.h>#include <p...

  • 解决《UNIX环境高级编程》(APUE)示例代码的编译问题

    时间:2022-09-08 00:14:10

    转自 http://cunsheng.sinaapp.com/?p=360APUE中示例很多, 把这些源码拿来跑跑调调对学习理解有着莫大的帮助, 随书网站就提供了源码下载, 不过我自己在Linux和Mac OS X编译时都遇到了一些小问题, 以下是解决方法和其他一些提示, 希望能对其他人有用下载了源...

  • 《UNIX环境高级编程》笔记--更改用户ID和组ID

    时间:2022-09-07 16:57:24

    在unix系统中,特权是基于用户和组ID的,当程序需要增加特权,或需要访问当前并不允许访问的资源时,我们需要更换自己用户ID或组ID,使的新ID具有合适的特权或访问权限。与此类似,当程序需要降低其特权或阻止对某些资源的访问时,也需要更换用户ID或组ID,从而使新ID不具有相应特权或访问这些资源的能力...

  • UNIX环境高级编程——文件和目录

    时间:2022-08-31 13:36:20

    一、获取文件/目录的属性信息int stat(const char *path, struct stat *buf);int fstat(int fd, struct stat *buf);int lstat(const char *path, struct stat *buf);struct st...

  • Linux - Unix环境高级编程(第三版) 代码编译

    时间:2022-05-31 23:14:36

    Unix环境高级编程(第三版)代码编译本文地址:http://blog.csdn.net/caroline_wendy时间:2014.10.21.下载代码:http://www.apuebook.com/code3e.html2.安装依赖库:sudo apt-get install libbsd-d...

  • UNIX环境高级编程 第7章 进程环境

    时间:2022-05-19 09:48:10

    main函数:C程序或C++程序总是从main函数开始执行的,其中这个总是从main函数开始执行是我们人为约定的,当然现在从main函数开始执行已经成为语言标准了,在汇编层次,我们可以把程序起始执行地址指向一个自定义的名字。 书本上7.2节这里的翻译很是生硬,字面意思直接翻译过来,让人不太好理解,原...

  • UNIX环境高级编程——计算机体系结构基础知识

    时间:2022-04-03 00:04:07

    无论是在CPU外部接总线的设备还是在CPU内部接总线的设备都有各自的地址范围,都可以像访问内存一样访问,很多体系结构(比如ARM)采用这种方式操作设备,称为等都会产生异常。通常操作系统把虚拟地址空间划分为。条汇编指令,系统调用只是进入内核程序的一个接口,内核调用内核函数(如中断异常服务程序,实现各种...

  • 《UNIX环境高级编程》学习心得 四 文件I/O(一)

    时间:2022-03-01 12:34:30

    这里说的文件I/O是相对标准I/O来说的。主要介绍在UNIX系统中常用的五个文件I/O函数:open、read、write、lseek、以及close。一、open和opennat#include<fcntl.h>intopen(constchar*path,intoflag,.../*...

  • Mac OS X 10.8 中编译APUE(Unix环境高级编程)的源代码过程

    时间:2022-02-10 07:08:59

    这篇文章主要介绍了Mac OS X 10.8 中编译APUE(Unix环境高级编程)的源代码过程,对于用MAC学习Unix环境高级编程的同学会有些作用,需要的朋友可以参考下

  • UNIX环境高级编程第三版源码编译

    时间:2022-02-10 00:24:52

    UNIX环境高级编程第三版源码编译遇到的问题一、问题描述:make,遇到错误:cannotfind-lbsd。二、原因:缺少缺少libbsd文件。三、解决方法:1、Fedora系列(通过yum来下载更新软件)#yuminstalllibbsd#yuminstalllibbsd-devel安装完成后就...

  • 《unix环境高级编程·第三版》源代码编译及使用

    时间:2021-12-30 23:22:12

    《unix环境高级编程·第三版》源代码编译及使用《unix环境高级编程》中有很多示例代码需要包含作者自定义的头文件,如"apue.h"。这些代码可以从以下网址下载http://apuebook.com/code3e.html1.解压文件tar-zxvfsrc.3e.tar.gz2.安装libbsd-...

  • UNIX环境高级编程——无名管道和有名管道

    时间:2021-12-26 21:06:18

    一、进程间通信每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcessCommu...

  • 《UNIX环境高级编程》读书笔记之进程控制

    时间:2021-12-12 10:00:58

    1.进程标识每个进程都有非负整型标示的唯一进程ID。系统中有一些特殊的进程,如ID为0的进程为调度进程,常被称为交换进程(swapper)。进程ID为1的进程为init进程,此进程负责启动UNIX系统。init进程是一个普通的用户进程,但是它是以超级用户权限运行的。init进程会成为所有孤儿进程(父...

  • apue.h头文件(UNIX环境高级编程)

    时间:2021-11-28 07:44:25

    在看UNIX环境高级编程是,碰到一个头文件"apue.h",搜一下别人的帖子,其实apue.h是作者自己写的一个文件,包含了常用的头文件,系统不自带。其中包含了常用的头文件,以及出错处理函数的定义。使用起来确实很方便。apue.h内容如下:#ifndef _APUE_H#define _APUE_H...

  • I/O多路转接 --- UNIX环境高级编程

    时间:2021-08-24 09:57:47

    I/O多路转接技术:先构造一张有关描述符的列表,然后调用一个函数,知道这些描述符中的一个已准备好进行I/O时,给函数才返回。在返回时,它告诉进程哪些描述符已准备好可以进行I/O。poll、select、pselect这三个函数使我们能够执行I/O多路转接。1.select和pselect函数I/O多...