关于linux文件类型总结——APUE学习笔记(3)

Ubuntu里S_ISLINK()函数找不到的问题 《UNIX环境高级编程》中S_ISLINK()函数找不到的问题 在《UNIX环境高级编程》第3版第4章图4-3 阅读中,发现Ubuntu里 #include<stdio.h> #include<sys/stat.h> #include<unistd.h> #include<stdlib.h> int main(int argc, char *arg... 阅读详情

在linux这个一切皆文件的世界中,对文件的理解很是重要,自己将apue中的文件类型总结了以下,希望对大家有所帮助。


一. linux下文件系统大概包括普通文件,目录文件,块特殊文件,字符特殊文件,FIFO,套接字,符号链接七种。


(1).普通文件(regular file):

a. linux下最常用的文件类型,该类文件可以是文本文件或者二进制文件,两者对unix内核来说并无具体区别。


(2). 目录文件(directory file):

a. 该类文件信息中包含了其他文件的名字以及指向这些文件的指针。

b. 目录文件的读写权限有点特殊:
–> 当任意一个进程对该目录享有读权限时,他都可以读到该目录的内容。
–> 但只有内核对目录可以直接进行写操作,进程必须通过APUE第四章介绍的函数才可以更改目录信息。


(3). 块特殊设备(blocks special file):

a. 块设备提供对设备(磁盘等)带缓冲的访问,每次访问以固定长度为单位进行。
b. FreeBSD不再支持块设备,而是以(4)文件类型对待。


(4). 字符特殊文件(character special file):

a. 字符特殊文件与块特殊文件都是描述设备的文件类型。
b. 相对于块特殊设备,该类型为不带缓冲访问。
c. 每次访问长度可以改变。
d. 系统中所有的设备都属于(3), (4)。


(5). FIFO(有名管道named pipe):

a. 用于进程间通信。
b. 传送门:http://blog.youkuaiyun.com/riyadh_linux/article/details/49826543


(6). 套接字(socket):

a. 用于进程间网络通信或者一台宿主机上进程间的非网络通信。



a. 符号链接分为软链接和硬链接,软链接相当于windows下的快捷方式;而硬链接则相当于拷贝动作,并且回同步时间戳。


二. 类型操作:


(1). 上述个文件类型都包含在stat结构的st_mode成员中(传送门:http://blog.youkuaiyun.com/riyadh_linux/article/details/49935819)。文件类型可以用以下宏来确定:

宏文件类型
S_ISREG()普通文件
S_ISDIR()目录文件
S_ISCHR()字符特殊文件
S_ISBLK()块特殊文件
S_ISFIFO()管道或FIFO文件
S_ISLINK()符号链接
S_ISSOCK()套接字
其参数都是stat结构中st_mode成员文件中的宏

POSIX.1允许将进程间通信说明为文件,所以我们可以用stat来确定IPC对象的类型:

宏类型
S_TYPEISMQ()消息队列
S_TYPEISSEM()信号量
S_TYPEISSHM()共享内存对象
其参数不是stat中st_mode成员,而是指向stat结构的指针IPC类型的宏

三. 下面有一个APUE的原例子,其作用是用来针对命令行参数来打印其文件类型的:

#include <apue.h>

int main(int argc, char **argv)
{
    int    i       ;      //游标变量
    struct stat buf;      //stat结构体成员
    char  *ptr     ;      //用来存储得到类型信息指针

    //参数判断,如果参数小于2个,退出
    if(2 > argc){
        printf("Usage:%s <filename>", argv[0]);
        return -1;
    }

    //循环遍历外部传入文件,并将文件信息记录在buf指向的结构体中
    for(i = 1; i <= argc; ++i){
        printf("%s:", argv[i]);
        if(0 > lstat(argv[i], &buf)){
            err_ret("lstat erro!");
            continue;
        }

        //比对文件buf.st_mode值
        if(S_ISREG(buf.st_mode)){
            ptr = "regular";
        }else if(S_ISDIR(buf.st_mode))(
            ptr = "diretory";
        }else if(S_ISCHR(buf.st_mode))(
            ptr = "character special";
        }else if(S_ISBLK(buf.st_mode))(
            ptr = "block special";
        }else if(S_ISFIFO(buf.st_mode))(
            ptr = "fifo";
        }else if(S_ISLINK(buf.st_mode))(
            ptr = "symbolic link";
        }else if(S_ISSOCK(buf.st_mode))(
            ptr = "socket";
        }else{
            ptr = "** unkown mode **";
        }

        //输出文件类型信息
        printf("%s\n", ptr);
    }

    return 0;
}

其运行结果为:

[root@localhost pthread]# ./a.out /etc/passwd /etc /dev/log\
> /dev/tty /var/lib/oprofile/opd_pipe /dev/sr0 /dev/cdrom
/dec/passwd: directory
/dev/log: socket
/dev/tty: character special
/var/lib/oprofile/opd_pipe: fifo
/dev/sr0: block special
/dev/cdrom: symbolic link

============end=============
小菜总结,如有不当,欢迎指出

apue 学习笔记——线程 线程的创建 阅读详情

相关推荐

linux命令c语言自己实现(大概40来个)

自己学习《APUE》时写的linux下一些命令(大概40个左右)实现,仅当学习使用,这些命令包括cat cp echo head ls paste rmdir tail umask who chattr cut expand join mkdir pwd sed tee uniq chgrp date find last mkfifo reboot sort wc chmod df ln mv rename split touch which chown du grep lsattr od rm tac tr whoami

操作系统:文件的分类

对于常见的文件分类进行了简单的介绍,另外对于文件的逻辑结构以及物理结构进行了详细的介绍!

坤舆湖畔的万某某的博客 9125

Bioconductor核心包(GO.db等)安装失败排查指南:从版本冲突到网络优化

本文详细解析了Bioconductor核心包(如GO.db)安装失败的常见原因及解决方案,包括版本冲突、网络问题和依赖关系。通过版本检查、镜像配置和依赖管理等方法,帮助用户高效解决安装难题,提升R语言生物信息学分析的工作效率。

weixin_29066781的博客 426

linux 文件属性

在 shell 下直接使用 ls 就可获得文件的属性 在程序中,用 stat/ fstat/ lstat 函数,获取文件的属性 函数可通过命令:man 2 stat 查看 #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int ...

qq_43769572的博客 280

【邻接表存图模板】vector邻接表、数组邻接表、链式前向星

一、目录 一、目录 二、前言 三、邻接表“详解” (一)边的信息 (二)几种邻接表的实现方法“详解” 1.数组邻接表 代码 2.vector邻接表 代码 vector邻接表还有一种魔性写法: 3.链式前向星 代码 四、总结 二、前言 本来之前自己太弱了,一直只会用邻接矩阵,后来发现邻接表才是主流... 参考&特别鸣谢: https://www.cnblog...

十里寒塘路♣烟花一半醒 3113

QNX系统中的密码哈希格式——数据安全深度分析

综上所述,QNX系统中的Shadowed密码哈希格式提供了一种有效的数据安全机制,能够保护用户密码的安全性。通过将用户密码的哈希值存储在系统文件中,并结合哈希算法和盐值的使用,可以有效地防止明文密码泄露和密码破解。密码哈希是一种常用的安全技术,用于将用户密码转换为不可逆的哈希值,以保护用户的敏感信息。在QNX操作系统中,存在一种称为Shadowed密码哈希格式的机制,用于存储用户密码的安全散列值。当用户登录系统时,系统会将用户输入的密码与保存的哈希值进行比对,以验证密码的正确性。在上述代码中,首先使用。

UneDatabase的博客 252

S_ISDIR 、S_ISLNK等几个常见的宏

S_ISLNK(st_mode):是否是一个连接. S_ISREG(st_mode):是否是一个常规文件. S_ISDIR(st_mode):是否是一个目录 S_ISCHR(st_mode):是否是一个字符设备. S_ISBLK(st_mode):是否是一个块设备 S_ISFIFO(st_mode):是否 是一个FIFO文件. S_ISSOCK(st_mode):是否是一个SOCKET

yuan_hong_wei 7022

元宇宙通证- 九、IT/ICT发展史全景长图

九、IT/ICT发展史全景长图 (一)综述 IT是Information Technology的缩写,意为”信息技术“,包含现代计算机、网络、通信等信息领域技术。自1844年人类历史上发出来第一份电报,实现了信息的长图传输,信息技术发展的历史大幕随之拉开。信息技术的普遍应用,是进入信息社会的标志。 IT技术最早发源于半导体,然后发展处计算机、通信网和互联网,进而演进到现在的AI、XR、计算机、大数据、物联网、工业互联网、区块链、量子计算等。 有人说元宇宙是下一代互联网,有人说元宇宙是互联网的终极形态。 我们

沧海之巅的专栏 1万+

APUE读书笔记(四) stat函数集

文章目录函数stat、fstat、fstatat和lstat函数原型参数说明返回值stat结构st_mode成员示例 函数stat、fstat、fstatat和lstat 这四个函数是用来返回i文件有关的信息结构。 函数原型 #include<sys/stat.h> int stat(const char *restrict pathname,struct stat *restrict...

缇珞的博客 309

飞牛NAS1.1.19更新后SSH连不上?两步快速恢复连接

飞牛NAS1.1.19版本更新后SSH无法连接😟,实则是官方安全策略升级默认关闭了该服务,本文分享两步实操配置恢复SSH连接💻,还同步了官方的设备安全配置建议,帮助用户兼顾使用与设备防护🔒。

XiaoqiangClub的博客 2098

[内网基础] 内网基础知识 —— Windows 工作组

在一个大型单位里,可能有成百上千台计算机互相连接组成局域网,如果不对这些计算机进行分组,网络的混乱程度是可想而知的。Windows 为了解决这一问题,就产生了工作组(Work Group)这个概念。Windows 工作组尝试将不通的计算机按功能(或部门)分别列入不同的工作组,例如技术部的计算机都列入 “技术部” 工作组、行政部的计算机都列入 “行政部” 工作组。要想访问某个部门的资源,只要在 “网络” 里双击该部门的工作组名,就可以看到该部门里的所有计算机了。

Blue17 の 小窝 1604

APUE学习笔记-汇总

APUE学习笔记(1)-限制查询APUE学习笔记(2)-errno变量APUE学习笔记(3)-时间概念APUE学习笔记(4)-文件共享APUE学习笔记(5)-设置用户IDAPUE学习笔记(6)-创建进程APUE学习笔记(7)-僵死进程APUE学习笔记(8)-执行程序

5542

高效与灵活相结合:Verilog编写的跨时钟域循环缓冲控制器解析

循环缓冲区,也被称作循环队列、环形缓冲区,是一种数据结构,其主要特性是使用一个固定大小的缓冲区作为数据的存储空间,这个缓冲区在逻辑上被视作是首尾相接的。虽然Verilog是一种常用的硬件描述语言,被广泛应用在FPGA和ASIC设计中,但是在描述循环缓冲区时,它并没有提供一种直接且灵活的方式来指定循环缓冲区的参数,如字长、缓冲区深度、缓冲区数量等。这给硬件设计带来了一定的不便。同时,该控制器的设计也充分考虑了硬件资源的利用率,通过优化的算法和数据结构,使得在实现高性能的同时,也能够有效地节省硬件资源。

qq_38334677的博客 1221

在Linux下编译APUE的例子

所有例子在 linux-2.6.29.3 ( gcc-4.3.3 )下编译通过,需要做的修改如下: l 打开apue.2e 文件夹下的Make.defines.linux 文件(根据你的系统选择对应文件),修改WKDIR=/home/var/apue.2e 为你的apue.2e 目录,...

weixin_34272308的博客 955

全新YOLO26有效涨点改进专栏目录 | 本专栏持续更新500+篇内容 | 包含各种卷积、主干网络、各种注意力机制、检测头、损失函数、小目标检测改进、二次创新模块、独家创新等几百种创新点改进

🔥《2026年YOLO26改进专栏》🔥 🚀持续更新500+最前沿创新改进点(顶会顶刊论文/独家创新策略),涵盖主干网络、各种卷积、注意力机制、检测头等模块,助力科研论文发表与模型性能提升,支持检测/分割/分类任务。订阅即获完整可运行项目,提供专业QQ答疑群,适合科研发论文(SCI/CCF/核心)及工业应用(PCB/医学/遥感检测)。专栏价格将逐步上涨,早订更优惠! ⭐特色:非计算机专业友好、模块可自由组合、全网独家创新;📌适用:研究生大论文和小论文创新、小目标检测、多领域科研应用,满足不同研究需求。

Ai缝合怪、助力小伙伴高效发论文 5135

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【apue学习笔记】之apue.h等头文件的配置

所有例子在linux-2.6.29.3(gcc-4.3.3)下编译通过(其他平台请自行测试)。 今天开始学习,linux圣经apue,刚开始myls_c的编程便苦恼了——那个apue.h的头文件是什么玩意啊! 经过一番网上查找答案,发现那是作者自己创立的一个头文件。从网上下载源代码(可以到我的资源里下载一下)看了一下。发现: 里面包括的系统函数调用有: opnedir(),readdi

jyb_haha的专栏 1220

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

APUE代码注记

写这篇博文是因为之前这篇文章:http://blog.youkuaiyun.com/fanfank/article/details/9418545 APUE在2013年出了新版(第三版),不知道里面的代码运行情况如何。所以我以下关于代码的注记,是针对APUE(第二版,2005年)的 ————————正文———————— 首先,所有的例程代码可以从www.apue.com下载,我之前下载的就是2005年那

fanfanK的专栏 2767

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

编译apue.3e缺少依赖库-lbsd

出现错误如下: making threads make[1]: Entering directory `/home/hhc/sharefile/apue.3e/threads' gcc -ansi -I../include -Wall -DLINUX -D_GNU_SOURCE badexit2.c -o badexit2 -L../lib -lapue -pthread -lrt -lbs

浪风一骑 1686

编译和使用APUE的源码

APUE源码的下载:http://www.apuebook.com/src.tar.gz 1.编译源码 假设源码解压到/home/crazyboy/tmp/apue.2e.src目录下. 首先修改与自己系统对应的Make.defines.*文件,我的是linux系统,就修改Make.defines.linux文件,将里面的WKDIR修改成源码所在的目录,即这一行改成"WKDIR=

mitesi的专栏 2447

Linux安装apue.3e以及运行第一个例子报错undefined reference to 'err_quit'

安装apue.3e 下载编译要用到的源代码,Advanced Programming in the UNIX® Environment, Third Edition source code。 随便解压到哪个目录里,tar -zxv -f src.3e.tar.gz -C /your/direct/,会在/your/direct/目录下生成一个新目录apue.3e,然后cd到这个apue.3e...

anlian523的博客 2223

APUE学习笔记(00)-写在前面

UNIX不用多做介绍,APUE也不再费口舌。 在学习APUE之前,首先要感谢一个intrepyd(http://hi.youkuaiyun.com/intrepyd),他的APUE学习笔记写的非常的好,我的学习笔记中一定会参考他的很多东西,在此一并感谢。 环境:Linux 2.6.18-128.4.1.el5xen i686 i686 i386 GNU/Linux 学习APUE之前,先理清APUE的结构,原书中的序中已经清晰给出,不在缀述。笔记大致一章节为的为主,从前至后进行。尽量三个月内完成。

zhenhuibox的专栏 609

Linux下配置APUE的编译 报错之后如何处理

APUE即Unix环境高级编程,本书中几乎所有的程序都包含一个apue.h的头文件,那如何配置这个apue.h呢? 官方地址:http://www.apuebook.com/apue3e.html 1、我们可以在src.3e.tar中下载,然后放到你的Linux桌面上(没桌面的,随意放吧) 2、解压下载的文件: tar -zxvf src.3e.tar.gz 3、进...

baodiceng4914的博客 289

APUE笔记(1):配置APUE环境

本人用的是CentOS6.5版本的linux 写这个环境配置是因为自己这一天被这个环境配置给搞的很难受 首先,我们在linux下找一个文件夹,存放APUE3的包: cd /home/src wgethttp://www.apuebook.com/src.3e.tar.gz 然后解压 tar -zxv -f src.3e.tar.gz 进入apue.3e文件夹 cd /home/...

Start_to_crazy的博客 676

apue.h不存在,以及apue源码下载编译的解决方法

下载源码 APUE源码下载: http://www.apuebook.com/ (选择书的版本,然后Source Code) 我下载的是e3,第三版的书的源代码 编译 一般我们看到一个软件包,第一时间都是先读README文件,然后发现里面说得很简单,直接在软件包目录下执行make就行了 wolfdan@wolfdan-PC $ cat README Read the file called DIS...

单林敏的博客 617

APUE学习笔记【1】

APUE学习笔记【1】工具;虚拟机vmvare,linux系统ubuntu 11.04,gcc version 4.5.2

iso1991_xie的博客 409
上一篇: 文件和目录之stat族函数<stat | fstat | lstat | fstatat>——APUE学习笔记(2)
下一篇: Markdown入门指南
Riyadh_linux
博客等级 码龄11年 11粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值