0.目录 1.概念 2.系统资源 3.学习方法 4.从用户的角度来理解 Unix 4.1 登录--运行程序--注销 4.2 目录操作 4.3 文件操作 5.从系统的角度来理解 Unix 5.1 网络桥牌 5.2 bc:Unix 的计算器 5.3 从 bc/dc 到 Web 6.小结 1.概念 概念: Unix 系统包含用户程序和系统内核 内核由多个子系统构成 内核管理所有的程序和资源 进程之间的通信对 Unix 程序是很重要的 什么是系统编程 相关命令: bc 一些术语: 内存空间用来存放程序和…
0.目录 1.more 能做什么? 2.more 是如何实现的? 3.实现 more 3.1 more01.c 3.2 more02.c 3.3 more03.c 1.more 能做什么? more 可以分页显示文件的内容.正常运行后 more 会显示文件第一屏的内容,在屏幕的底部,more 用反白字体显示文件的百分比,这时如果按空格键,文件的下一屏内容会显示出来,如果按回车键,显示的则是下一行,如果输入"q",结束显示,如果输入"h",显示出来的是 more 的联…
本来只打算读这本书socket等相关内容,但书写得实在好,还是决定把其余的内容都读一下. 阅读联机帮助的一个示例: open系统调用: read系统调用: Unix的time: 上面的printf可以看到,一个临时的char* 指针也可以+4,希望查看ctime函数里面是否有malloc,如果有的话由谁来释放内存???没有的话为什么可以指针操作. 为解决上述疑惑,通过查看http://www.cplusplus.com/reference/ctime/ctime/以及及http://www.cp…
同一接口不同的数据源: 协同进程: fdopen以文件描述符为参数: fopen和popen: 为了实现popen,必须在子进程中调用sh,因为只有shell本身即/bin/sh可以运行任意shell命令: popen的实现: 访问数据: 系统调用socket创建一个socket:   htons(16位).htonl(32位).ntohs.ntohl这些函数用于网络字节序与主机字节序转换.名字由来:host to network long. connect: 使用SIGCHLD来阻止僵尸问题:…
execvp在程序中启动新程序: 用fork创建新进程: forkdemo2代码: 测试fork的时候参考<Linux权威指南>阅读笔记(3)  使用了patch: [root@localhost programming]# diff -c forkdemo2.c forkdemo2_new.c > forkdemo2.patch [root@localhost programming]# patch < forkdemo2.patch patching file forkdemo…
测试logfilec.c的时候,有个sendto(sock,msg,strlen(msg),0,&addr,addrlen),编译时提示: logfilec.c:30: warning: passing argument 5 of ‘sendto’ from incompatible pointer type 但是书上是这样写的,在stackoverflow搜了一下,原来是: 需要进行一个转换. 另外才注意到C语言中单引号可转义可不转. 需要用curses库的测试hello1.c,发现没有,需要…
我想把最近学习Linux的经验和过程分析出来,当时是在上大三,是学生一枚,以前对开源也没有什么特殊的认识,只觉得很高深,不明觉厉的东西,在当时因为学校要参加职业技能大赛,其中有一团体性质的比赛,几个同学组成一个团队,比如几个同学负责基础网络建设,几个同学负责常见的服务器搭建,那这里就涉及了Linux的相关知识,Linux方面的知识很多都是开源的,但是需要花时间和精力去学习. 本身那时我所在的学校就不是什么有名的学校,学校内也没有专门从事Linux相关教育的老师,所以只能自学(非常痛苦).负责辅导…
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…
1. more第一版 实现基础功能,显示每一页固定24行文本,“q Enter”退出, “Enter” 下一行, “space Enter”下一页. #include<stdio.h> #include<stdlib.h> #define PAGELEN 5 #define LINELEN 512 //实现基础功能,显示每一页固定24行文本,“q Enter”退出, “Enter” 下一行, “space Enter”下一页. void do_more(FILE *); int s…
内核为每个目录都设置了一个指向自己的i节点入口,即".",还有一个指向其父目录i节点的入口,即"..",我们首先获取当前目录的i节点编号,但是并不能知道当前目录的名称,我们切换到其的父目录,在里面寻找当前i节点编号对应的文件名即可.这样我们就很容易联想到使用递归来实现,但是终止条件是什么呢?在Unix文件系统的根目录中,"."和".."指向同一个i节点,我们可以以此判断是否发到达了根目录. pwd以绝对路径打印当前的工作目录.…
一 分析 要实现一个shell,需包含3个步骤 1)读入指令 2)指令解析 3)执行指令 1 从键盘读入指令 从键盘读入指令的几个要点: 1)调用getc函数等待并获取用户键盘输入. 2)每一行命令的结束符为'\n',getsline函数就是通过这个结束符来判断用户是否完成指令的输入. #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { ); char* prompt = &qu…
Unix & Linux 方面的博客整理.归纳分类,要坚持不懈的学习Unix &Linux,加油!技术需要累积和沉淀.更需要锲而不舍的精神.持之以恒的毅力!借此下面名句勉励自己! 书上有路勤为径,学海无涯苦作舟! 泰山不辞细土,故能成其高;大海不择细流,故能就其深. 罗马不是一天建成的,胖子也不是一顿吃成的. Shell学习总结 文件管理 Linux命令学习总结:cd命令 Linux命令学习总结: file命令 Linux命令学习总结:pwd命令 Linux命令学习总结:rm命令 Linu…
最近在学习Unix网络编程(UNP),书中steven在处理网络编程时只用了一个#include “unp.h”  相当有个性并且也很便捷 于是我把第三版的源代码编译实现了这个过程,算是一种个性化的开发环境的搭建吧,顺便把过程记录下来,以便自己以后查阅. 首先去网上找到源代码包unpv.13e.tar.gz 一找一大堆 解压缩到你的某个目录,unpv13e里面大致有这些目录 ├── aclocal.m4 ├── advio ├── bcast ├── config.guess ├── confi…
在学习UNIX网络编程的时候.一開始分不清 同步 和 异步,所以还是总结一下,理清下他们的差别比較好. IO分类 IO依据对IO的调度方式可分为堵塞IO.非堵塞IO.IO复用.信号驱动IO.异步IO. IO操作整个流程分为 可操作推断 和 实际IO操作 两个区间,我们能够称之为两个半程,前半程推断是否可操作,后半程进行实际操作. 当中堵塞IO.非堵塞IO.IO复用.信号驱动IO由于其[实际的IO操作是同步堵塞]的,所以一般把他们归为同步IO,异步IO的实际IO操作是在独立的线程中完毕的,所以称为…
1  .  Layered Model of Networking Socket  编程的层次模型如下图所示,   最上面是应用层,应用层下面的是  SOCKET API  层,再下面是传输层和网络层……  实际上,  Sockets API  层并不是一个真正定义的网络层次,但却很好的描述了  Socket  编程所处的位置和所扮演的角色. TCP  状态转换图 2  .什么是  SOCKET  ? 简单的,  Socket  可以被定义描述为两个应用通信通道的端点.一个Socket  端点可…
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操作系统进行学习. 通过./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操作系统进行学习. 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++开发环境 本文所需软件下载地址 33.  F2 开始安装 34.待安装完成 按F8重启…
Linux Shell脚本教程:30分钟玩转Shell脚本编程 http://c.biancheng.net/cpp/shell/…
位架构,包括英特尔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操作系统进行学习. 本文就带大家来安装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/Linux是自由的:         因为我们可以自己组装一个操作系统:Unix/Linux内核+其他实用工具+编程工具+GUI         因为我们可以自由地获取开源工作者们分享的各种自由软件         因为我们可以自由地修改.再发行自由软件,促进软件的完善         因为我们可以自由管理自己的电脑:通过群组与用户来管理电脑的使用者:通过文件系统.属性.权限来限制使用:通过查阅.编辑各种配置文件对电脑的各个部位了如指掌.指挥自如:通过shell scrip…
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…