来自Unix/Linux的编程启发录】的更多相关文章

本篇文章已授权微信公众号 guolin_blog (郭霖)独家公布重点内容 2017年第一篇文章,祝各位好友新年快乐. 年前因为不小心坐到了自己左手大拇指导致轻微的骨裂,没有按时更新,实在是羞愧.今年给自己订了个小目标,在安顿好新工作后,每周一篇来总结这些年所学. 话不多说,步入正题 写本文的最初灵感源于16年11月份我将工作环境切换到Mac OS上,当中一些使用"差异"让我開始对Unix/Linux中设计产生了浓厚的兴趣.虽然从13年開始使用redhat,再到后来一直使用的ubunt…
今天主要是将前几天搞的Linux学习的心得写出来,希望帮助更多的人进行,方便从事Unix和Linux编程的同行和刚入门者.主要介绍三种工具并给出安装过程,请大家不必怀疑这个博文,此博文是我自己原创.请大家放心使用. 此文共4个教程(教程1-FileZilla软件安装,教程2-Secure CRT软件安装使用,教程3-eclipse for c++/c,eclipse for c/c++ FileZilla Secure CRT配合使用教程). 工具1...FileZilla软件. 此软件是一种进…
目录 1.主机到网络层协议:以太网协议 2.IP协议 3.网际控制报文协议(ICMP) 4.传输控制协议(TCP) 5.用户数据报文协议(UDP) 6.流控制传输协议(SCTP) 7.地址解析协议(ARP)   联网的各个终端之间能否进行交互的软件基础是网络协议栈,目前主流的网络协议栈是TCP/IP协议栈. 1.主机到网络层协议:以太网协议 主机到网络层主要为IP协议和ARP协议提供服务.发送和接收网络数据报.本层中由于要实现跨网和跨设备的互通,有很多的实现方式,这里我们只关注以太网的实现方式.…
目录 1.HTTP协议 2.FTP协议 3.TELNET协议 4.NFS协议 1.HTTP协议 应用层协议HTTP协议是Web的核心.HTTP协议在Web的客户程序和服务器程序中得以实现,运行在不同系统上的客户程序和服务器程序通过交换HTTP消息彼此通信.HTTP协议定义数据格式,使得服务器和客户端通过协议进行数据交流. 客户端和服务器交流的基本内容:Web页面(web page,也称为文档). Web页面由多个对象构成,对象(object)是可由URL进行寻址的文件,例如HTML文件.JPG图…
一,开发工具 编译器 GCC 调试工具 GDB 代码编辑 Vim 1. 编译命令 gcc hello.c -o hello # 第二个hello为新生成的可执行文件名 -o 为生成的可执行文件指定名称. -Wall 打印所有警告. -E 把用户定义的所有的预定义#define展开,会生成 .i 后缀的C源文件. -c 生成二进制文件,后缀名 .o -g 生成可调试的可执行二进制文件 2. 调试命令 l   list的简写,从第一行开始列出代码  break 16  设置断点,在代码第16行  b…
写这篇文正主要是为了介绍下fcntl,并将我自己在学习过程中的一些理解写下来,不一定那么官方,也有错误,希望指正,共同进步- fcntl: 一个修改一打开文件的性质的函数.基本的格式是 int fcntl(int filedes, int cmd, ...) 包含在头文件<fcntl.h>中. 参数三是看cmd这个参数的设置.函数返回一个文件描述符.fcntl有五种功能.下面介绍其中的三种功能 1.复制一个现有的描述符(cmd = F_DUPFD) 2.获得/设置文件描述符标记(cmd = F…
linux shell编程总结 本周学习了unix/linux shell编程,参考的是<LINUX与UNIX Shell 编程指南>,David Tansley著:徐焱,张春萌等译,由机械工业出版社出版的了,往内页那么一翻,都是2000年3月译的了,原书估计会更老,不过图书馆能找到合适于我这种初学者的也许就这么本了,将就着的吧. 这本书是以Bourne shell这个UNIX系统都支持的标准shell.Bourne Again shell(BASH).TCSH shell和Z shell它们…
我是一名普通的软件工程师,不是什么技术大牛.这篇文章所提到的"七种武器"只是我这些年工作经验的一点体会和感悟,如果有错误的地方,还请大家指正. (一)C语言 作为一名C程序员,熟练掌握C语言是最基本的一项技能.关于如何学好C语言,以及C语言话题的讨论,网上有很多经典的文章,我就不一一列举了.在这里,我只想谈一点我个人的体会:刚毕业时,我来到一家比较大的软件公司工作,而公司的工作模式是每个人只负责一个小模块.这样工作两年后,我自认为我的C语言水平已经很高了.后来,我来到现在这家公司.由于…
Linux 系统编程 学习:03-进程间通信1:Unix IPC(2)信号 背景 上一讲我们介绍了Unix IPC中的2种管道. 回顾一下上一讲的介绍,IPC的方式通常有: Unix IPC包括:管道(pipe).命名管道(FIFO)与信号(Signal) System V IPC:消息队列.信号量.共享内存 Socket(支持不同主机上的两个进程IPC) 我们在这一讲介绍Unix IPC,中有关信号(Signal)的处理. 信号(Signal) Signal :进程给操作系统或进程的某种信息,…
UNIX环境高级编程(第3版) Advanced Programming in the UNIX Environment Linux/UNIX系统编程手册 Linux/UNIX系统编程手册 (豆瓣) https://www.amazon.cn/%E5%9B%BE%E4%B9%A6/dp/B00KMR129E UNIX网络编程 W.Richard Stevens https://www.amazon.cn/UNIX%E7%8E%AF%E5%A2%83%E9%AB%98%E7%BA%A7%E7%BC…
Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 通过./a.out ./Y.out执行出结果,证明C++程序编译成功,也就说明linux C++ 开发环境搭建完成. 95.这里的C语言helloworld ,还有C++的helloworld,都只是简单的例子,我们后面会重点分析,这里只是测试一下linux平台,C,C++的开发环境是否搭建完成. 关于linux指令,还有linuxC/C++编程,希望大家以后认真关注传智播客的视…
Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 1.广义的Debian是指一个致力于创建自由操作系统的合作组织及其作品,由于Debian项目众多内核分支中以Linux宏内核为主,而且 Debian开发者 所创建的操作系统中绝大部分基础工具来自于GNU工程,因此 "Debian" 常指DebianGNU/Linux. 2. 创建一个虚拟机 3.我们定制workstation10.0 4.我们选择稍后安装操作系统 5.我…
Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 本文就带大家来安装Solaris 11 64位并且配置好C/C++开发环境 本文所需软件下载地址 33.  F2 开始安装 34.待安装完成 按F8重启…
Unix/Linux版本号众多,我们推荐Unix/Linux刚開始学习的人选用几款典型的Unix/Linux操作系统进行学习. 通过./a.out ./Y.out运行出结果,证明C++程序编译成功.也就说明linux C++ 开发环境搭建完毕. 95.这里的C语言helloworld ,还有C++的helloworld.都仅仅是简单的样例.我们后面会重点分析.这里仅仅是測试一下linux平台,C,C++的开发环境是否搭建完毕. 关于linux指令,还有linuxC/C++编程,希望大家以后认真关…
学习Linux已经有2个月了,最近被期末考试把进度耽误了,前几天把Unix环境高级编程看了两章,感觉对Linux的整体有了一些思路,今天尝试着对第一章涉及到的一个简单的交互式shell编译运行一下,结果发现gcc不成功,百度了一下发现很多解决的帖子,但是都是基于第二版的,很多帖子都提到要进入apue.2e目录,然后修改Make.defines.linux文件,将里面的WKDIR改为自己当前的工作目录,然而我进入第三版对应的apue.3e目录下的Make.defines.linux的文件下,并没有…
近期正在看<Unix环境高级编程>一书,目前看了20多页,书中 有几个c的例程,于是想着,也让它运行一下,看看是否跟描述相符,做开发人员本应该这样,于是敲了一部分代码,然后编译,发现并不能运行,百度 一看,原来,书中的例程都是基于作者写的一个库文件,于是着手进行安装以便运行书中的一些例程. 1.下载源码,可以去官方地址下载.下载地址[http://www.apuebook.com/src.3e.tar.gz]. 我是直接在linux下下载的:wget http://www.apuebook.c…
unix环境高级编程的术语很多,概念内容,也很多,不过学习概念性质.标准规则类的东西,想必都是这样吧——需要进行拓展的内容很多. Linux程序设计,图文并茂,代码量够足,看起来,感觉难度还可以. linux程序设计这部书,是我第一部接触到的,因为想研究纯后端的东西,所以上面的不少图形界面相关的内容,我都是跳着看——感觉快要放弃这本书了,不过对unix体系,Linux的设计了解了很多东西,也只能是了解的底部,深入的话,需要时间.精力. 目前大致的确定方向,是深啃unix环境高级编程这部书,精力呀…
Linux 系统编程 学习:02-进程间通信1:Unix IPC(1)管道 背景 上一讲我们介绍了创建子进程的方式.我们都知道,创建子进程是为了与父进程协作(或者是为了执行新的程序,参考 Linux exec族函数解析 ) 我们也知道,进程之间的资源在默认情况下是无法共享的,所以我们需要借助系统提供的 进程间通信(IPC, InterProcess Communication) 有关的接口. 进程间通信 由于进程间的地址空间相对独立.进程与进程间不能像线程间通过全局变量通信,所以进程之间要交换数…
1.问:知道程序执行时间我们能够做什么? 在<C++应用程序性能优化>一书中,假设大家读过相信大家一定对性能优化这一块很上心,文中总是对优化前后的时间对照很直观给我们一个感受. 那么我们怎样利用C语言提供的库函数获取一个应用程序的各阶段的执行效率,通过数据分析出该程序的瓶颈而且做出对应的优化. 本文给大家解说的clock()函数. 2.我们首先看一看C/C++标准文档对于clock()函数的解说 3.函数原型 clock_t clock (void); 函数返回值 clock()返回从&quo…
1. getenv() putenv()setenv()函数介绍 getenv(取得环境变量内容) 相关函数 putenv,setenv,unsetenv 表头文件 #include<stdlib.h> 定义函数 char * getenv(const char *name); 函数说明 getenv()用来取得参数name环境变量的内容.参数name为环境变量的名称,如果该变量存在则会返回指向该内容的指针.环境变量的格式为name=value. 返回值 执行成功则返回指向该内容的指针,找不到…
isalnum isalpha isascii iscntrl isdigit isgraph isislower isprint isspace ispunct isupper isxdigit介绍 首先这些全部是宏,只不过我们初学者和使用者可以直接把他当作函数用. isalnum(测试字符是否为英文或数字) 相关函数 isalpha,isdigit,islower,isupper 表头文件 #include<ctype.h> 定义函数 int isalnum (int c) 函数说明 检查…
1.问:知道程序运行时间我们可以做什么? 在<C++应用程序性能优化>一书中,如果大家读过相信大家一定对性能优化这一块非常上心,文中总是对优化前后的时间对比非常直观给我们一个感受. 那么我们如何利用C语言提供的库函数获取一个应用程序的各阶段的运行效率,通过数据分析出该程序的瓶颈并且做出相应的优化. 本文给大家讲解的clock()函数. 2.我们首先看一看C/C++标准文档对于clock()函数的讲解 3.函数原型 clock_t clock (void); 函数返回值 clock()返回从&q…
Unix/Linux家族人员众多,我们无法一一讲解如何配置环境. 本文选定我们在前面安装的RHEL6 RHEL7 MAC10.9.3 Solaris11如何跑起来helloworld RHEL 6 上的helloworld 1.进入RHEL6 2.鼠标点击右键 点击open in terminal 3.一个终端被打开 并在终端中输入 vi hello.c 4.如图 为vi的页面 5.按下i键 vi进入INSERT模式 6.输入一个简单的hello world程序 7.按下 ESC键 进入末行模式…
位架构,包括英特尔X-86_64.Power和s390.动态定时能力将降低内核内部中断数量,Open vSwitch 2.0功能可调节虚拟机之间的流量.RHEL 7中默认的文件系统是XFS,包含了一个64位的日志文件系统,替换了ext4文件系统,无附加费用.RHEL 7的特色是服务器端NFS 4.1支持,MariaDB作为主数据库,也支持PostgreSQL 9.2. 2.在安全方面,RHEL 7支持SCAP(安全内容自动化协议),该协议提供了一个自动化的方法来验证安全指南,目前已经集成在红帽的…
Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 2010年9月,Oracle Enterprise Linux发布新版内核--Unbreakable Enterprise Kernel,专门针对Oracle软件与硬件进行优化,最重要的是Oracle数据库跑在OEL上性能可以提升超过75%.Oracle Enterprise Linux 与Redhat Enterprise Linux也是同源. 本文就带大家来安装Oracle…
Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 本文就带大家来安装CentOS并且配置好C/C++开发环境,这是一款Linux. 1.CentOS 与Redhat系出同源,功能差不多,为何要用CentOS,因为Free,Redhat服务需要付费 Redhat无法在线安装,当然如果你自己非要用在线更新就需要自己配置YUM源.具体详见我们后期博客 2. 无法在线安装,并无法检测软件包的依赖性,需要付费 3. 新建一个虚拟机…
Unix/Linux许多的版本号.我们推荐Unix/Linux刚開始学习的人选用几款典型的Unix/Linux操作系统进行学习. 本文就带大家来安装Solaris 11 64位而且配置好C/C++开发环境 本文所需软件下载地址 1.你应该有以下4个安装所需文件…
版权声明:本文为博主尹成联系QQ77025077,微信18510341407原创文章,欢迎转载侵权不究. https://blog.csdn.net/yincheng01/article/details/37568197 Unix/Linux家族人员众多.我们无法一一解说怎样配置环境. 本文选定我们在前面安装的RHEL6 RHEL7 MAC10.9.3 Solaris11怎样跑起来helloworld   RHEL 6 上的helloworld     1.进入RHEL6 2.鼠标点击右键 点击…
<UNIX环境高级编程(第三版)>是一本广为人知的unix系统编程书籍. 但是,书中的代码示例,要想正确的编译运行,要先做好准备工作: 1.下载源代码 传送门:http://apuebook.com/code3e.html 2.解压源代码 tar xf src.3e.tar.gz 3.安装libbsd-devel,不然编译的时候回报错 yum install libbsd-devel -y 4.编译 cd apue.3e/ make cp ./include/apue.h /usr/inclu…
Unix环境高级编程(第三版) 代码编译 本文地址:http://blog.csdn.net/caroline_wendy 时间:2014.10.2 1. 下载代码:http://www.apuebook.com/code3e.html 2. 安装依赖库:sudo apt-get install libbsd-dev  3. 进入下载文件夹make 4. 复制头文件和动态链接库 sudo cp ./include/apue.h /usr/include/ sudo cp ./lib/libapu…