那里有CC++,LINUX比较好的视频教程下载?急用
不知道你需要哪种的?
我可以从我们学校的服务器下载到 国内一些大学的 这种视频课程(有点老);好像计算机相关的所有课程都有,
但是如果你需要那种讲开发/应用的,,建议你去 电驴上找找;
c语言入门,可以参考的学习网站?
1、cplusplus:一个优秀的C++学习网站,除了提供相应的教程之外,还有一个很棒的论坛。和其它网站相比,它的价值更多体现在参考上,因为里面解释了许多编程概念。
2、C++ Source Codes:345个比较全面的关干C++的源代码清单。
3、C++ FAQ:C++常见问题,项目工程中遇到的很多问题都有,涉及C++高效编程。
4、LearnCpp:免费学习c++编程。
5、TutorialsPoint:一个很好的网站!想学的技术(包括C++),它几乎都提供了详细的教程。保存好就对了,超级有用。
6、The C++ Standard Library:这是一个收集了数C/C++网站链接列表的网页。
7、Free C/C++ Libraries:免费C++开源库和其它有用的工具。
8、C and C++ Users Group:C和C++的用户团体提供了免费的涵盖各种编程领域 C++ 项目的源代码,包括 AI、动画、编译器、数据库、调试、加密、游戏、图形、GUI、语言工具、系统编程等。
讲解一下:
php4、php5指的是php的版本,现在使用的大都是php5,据传php6即将面世,较之php5将有很大的改进;
制作php可以使用phpdesigner 、dreamweaver、EclipsePHP等很多软件进行编写,具体使用什么,使用哪一种,完全是个人喜好的问题。我个人比较喜欢dreamweaver。
无论是制作过程中、学习、开发都不可避免要进行调试,那么就需要搭建一个可执行php的环境,说白了,就是一个虚拟服务器,我个人特别偏重WampServer,用起来特别顺手,页面安装、配置都特别方便。
php语言的确是比较容易上手,但要想吃透它,是需要时间、精力、头脑和大量经验的。目前很多大型站点都比较喜欢采用php,这就在一定程度上说明php有多强大!
要视频教程,我个人首推php100的系列教程,张恩民老师的课程由浅入深,以实例为主,我就是一步步跟着学过来的,如果你的学习能力很强,跟着这套教程学习三个月,就完全可以独立完成一个小规模的站点了。
以上我提到的软件、教程都可以在http://wwwphp100com找到,预祝你学习成功。
C是一种高级通用编程语言,非常适合开发固件或便携式应用程序,最初用于编写系统软件,C是由Dennis Ritchie在20世纪70年代早期在贝尔实验室为Unix操作系统开发的。
C语言能干什么
1、C语言可以做嵌入式开发。
2、C语言可以写漂亮的界面。以windows开发为例,你可以学习《windows程序设计(第五版)》,学完就可以写出界面来。还有一些开源库界面库,例如soui也是用C写出来的。
3、C语言可以做服务器开发,现在的游戏服务器端大多都是C/C++开发的。《windows核心编程》里面的例子就是用C写的。
4、C语言可以写游戏。cocos2d-x就是C/C++写的。DirectX也是。
5、C语言可以写驱动程序。windows下各种硬件驱动都是C/C++写的。腾讯游戏保护软件(TP)也是驱动程序。
6、C语言可以写外挂。想学写外挂的童鞋们可以看看郁金香的外挂编程视频教程。
7、C语言可以做视频流媒体处理。有兴趣的朋友可以学习一下ffmpeg、live555、sdl等开源库。
8、C语言可以做网页和爬虫相关的编程。想了解的同学可以去看gsoap、libcur等相关开源库。
9、C语言可以进行黑客编程。配合汇编获取随机地址、调shellcode等。
C语言有什么优势1、简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2、运算符丰富
C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3、数据类型丰富
C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。
4、表达方式灵活实用
C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵活。它语法限制不太严格,程序设计自由度大,如对整型量与字符型数据及逻辑型数据可以通用等。
推荐一些计算机视频教程和相关图书
视频 C视频教程 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=218&wh=helploving
视频 软件设计师试题讲解 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=179&wh=helploving
视频 路由器和交换机配置命令讲解与演示视频教程 路由器和交换机配置命令讲解与演示,包括交换机配置和命令的讲解与演示,路由器的配置和命令的讲解与实际演示。 http://wwweducitycn/user/xch/fromaspid=44&wh=helploving
视频 网络管理员培训教程 由工作在软考第一线的专家根据历年来的考试辅导、阅卷、教材编写的经验,总结考生复习中的弱点、难点、疑点编写而成。 http://wwweducitycn/user/xch/fromaspid=15&wh=helploving
视频 JAVA程序设计视频教程 以Sun公司的J2SE 142为标准,详细介绍了了面向对象编程的基本思想和方法;Java 2语言。 http://wwweducitycn/user/xch/fromaspid=47&wh=helploving
视频 数据库试题视频 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=176&wh=helploving
视频 信息系统监理师考试串讲视频教程 本串讲视频教程包括了信息系统监理师考试的所有考点,对于教材中没有涉及到的知识点或者讲得不详细的知识点,进行了详细的归类。 http://wwweducitycn/user/xch/fromaspid=74&wh=helploving
视频 信息处理技术员 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=199&wh=helploving
视频 软件设计师视频教程 由全国著名的软件工程专家张友生与资深软考辅导专家王勇主编和讲解,其最大的特色是采取以“考点为中心,有取有舍”的讲课。 http://wwweducitycn/user/xch/fromaspid=13&wh=helploving
视频 数据库工程师考试培训 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=175&wh=helploving
视频 程序员考试试题讲解视频教程 对一些大纲上要求而书本上比较分散的要点进行综合;对解下午题的思路与方法进行了详细讲述。 http://wwweducitycn/user/xch/fromaspid=65&wh=helploving
视频 软件设计师考试串讲视频教程 根据最新的软件设计师考试大纲和作者进行考试辅导和阅卷的经验,对其中的难点问题进行了详细的分析和讲解。 http://wwweducitycn/user/xch/fromaspid=68&wh=helploving
视频 信息系统项目管理师视频教程 本教程就考试中经常出现的一些问题进行了归纳和总结,压缩了所有考试重点和难点知识。所总结的考试重点知识包括了(综合知识、案例分析、论文)实际考试时除专业英语以外的95%以上的考试知识点,而这些知识点几乎在每次考试中都会出现。 http://wwweducitycn/user/xch/fromaspid=9&wh=helploving
视频 常见木马检查 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=205&wh=helploving
视频 看学赛视频课程,做IT高级人才 IT业在信息时代成为先导产业,做信息时代骄子,就要先成为IT高级人才,学习成为你成功的唯一途径,看学赛视频课程,权威的学习系统,专业的导师辅导,为你打开成功之门。 http://wwweducitycn/user/xch/fromaspid=126&wh=helploving
视频 系统分析师试题讲解 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=183&wh=helploving
视频 数据库原理视频教程 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=209&wh=helploving
视频 数据库系统工程师考试试题讲解视频教程 对数据库系统工程师考试的历年试题进行了详细的讲解,对考试所涉及的知识点进行了深入分析。 http://wwweducitycn/user/xch/fromaspid=69&wh=helploving
视频 Microsoft NET框架程序设计视频教程 通过对NET核心技术的讲解,帮助学员了解NET框架如何为众多高级语言和应用程序模型提供各种服务。 http://wwweducitycn/user/xch/fromaspid=46&wh=helploving
视频 计算机网络基础知识教程 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=213&wh=helploving
视频 数学与经济管理视频教程 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=210&wh=helploving
视频 局域网组网技术视频教程 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=212&wh=helploving
视频 自考计算机网络基础视频教程 由具有丰富教学经验的高级讲师讲解,讲解的过程中采用大量的例题对相关知识点进行讲解,帮助学习者能更好的理解、掌握相关知识点。 http://wwweducitycn/user/xch/fromaspid=31&wh=helploving
视频 自考网络操作系统安全管理视频教程 主要介绍了在主流UNIX、Linux和Windows 2000等网络操作系统环境中实现安全管理和系统。 http://wwweducitycn/user/xch/fromaspid=34&wh=helploving
视频 网络管理员考试试题讲解视频教程 对2005年5月至2007年11月的网络管理员考试的试题进行了详细的讲解。 http://wwweducitycn/user/xch/fromaspid=66&wh=helploving
视频 软考视频教程 根据最新的考试大纲,对考试中所有知识点进行了归类分析和总结,挖掘出了其中的考试重点和难点,指出了考试的命题方向以及每个知识点在实际考试中所占的分数比例。 http://wwweducitycn/user/xch/fromaspid=7&wh=helploving
视频 二级C++语言视频教程 集中了考试所有的难点和重点知识的精深讲解,可以保证既不漏掉考试必需的知识点,又不加重考生备考负担,使考生轻松、愉快地掌握知识点并领悟二级C++考试的真谛。 http://wwweducitycn/user/xch/fromaspid=21&wh=helploving
视频 Java程序设计 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=204&wh=helploving
视频 系统分析师视频教程 本视频教程就考试中经常出现的一些问题进行了归纳和总结,压缩了所有考试重点和难点知识。所总结的考试重点知识包括了(基础知识、案例分析、论文)实际考试时除专业英语以外的90%以上的考试知识点,而这些知识点几乎在每次考试中都会出现。 http://wwweducitycn/user/xch/fromaspid=10&wh=helploving
视频 信息系统项目管理师考试串讲视频教程 根据最新的信息系统项目管理师考试大纲和作者进行考试辅导和阅卷的经验,对其中的难点问题进行了详细的分析和讲解。 http://wwweducitycn/user/xch/fromaspid=75&wh=helploving
视频 自考C语言程序设计视频教程 帮助学习者能更好的理解、掌握相关知识点,内容涵盖了计算机专业《C语言程序设计》课程的所有知识点。 http://wwweducitycn/user/xch/fromaspid=32&wh=helploving
视频 互联网的应用视频教程 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=211&wh=helploving
视频 数据库工程师试题视频 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=174&wh=helploving
视频 网络工程师考试培训 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=190&wh=helploving
视频 投资决策视频教程 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=208&wh=helploving
视频 信息处理技术员试题 深入浅出,详细介绍试题的难点! http://wwweducitycn/user/xch/fromaspid=172&wh=helploving
视频 C语言程序设计 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=217&wh=helploving
视频 计算机专业英语视频教程 由具有丰富教学经验的教授讲解,讲解分11个部分,从不同方面精选了53篇英语短文,进行全方位的讲解。 http://wwweducitycn/user/xch/fromaspid=24&wh=helploving
视频 系统分析师考试培训视频 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=182&wh=helploving
视频 IT项目管理视频教程 根据PMBOK2004知识体系,结合我国IT项目建设和管理的实际情况,对信息系统项目管理所涉及的知识领域进行了详细的讲解。 http://wwweducitycn/user/xch/fromaspid=37&wh=helploving
视频 Linux服务器配置及命令讲解视频教程 Linux服务器配置及命令讲解与演示,包括服务器配置,管理,网络操作,常用命令的讲解和实际演示。 http://wwweducitycn/user/xch/fromaspid=43&wh=helploving
视频 软件开发过程改进视频教程 通过本课程的学习可以使学员把握CMM的精髓,从而在具体的项目中实施CMM。 http://wwweducitycn/user/xch/fromaspid=41&wh=helploving
视频 网络工程师视频教程 由工作在软考第一线的专家根据历年来的考试辅导、阅卷、教材编写的经验,总结考生复习中的弱点、难点、疑点编写而成。 http://wwweducitycn/user/xch/fromaspid=11&wh=helploving
视频 自考计算机组装与维护视频教程 主要介绍微型计算机组成原理及其组装与维护技术。 http://wwweducitycn/user/xch/fromaspid=28&wh=helploving
视频 IT项目管理(高级篇)视频教程 以软件类、管理咨询类或企业信息化等项目实例分析IT项目涉及的主要项目管理内容。 http://wwweducitycn/user/xch/fromaspid=38&wh=helploving
视频 自考互联网的应用视频教程 讲解的过程中采用大量的例题对相关知识点进行讲解,帮助学习者能更好的理解、掌握相关知识点。 http://wwweducitycn/user/xch/fromaspid=33&wh=helploving
视频 知识管理视频教程 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=206&wh=helploving
视频 信息系统监理师考试试题讲解视频教程 对2005年5月至2007年5月的信息系统监理师考试的试题进行了详细的讲解,对考试所涉及的知识点进行了深入分析。 http://wwweducitycn/user/xch/fromaspid=72&wh=helploving
视频 安全的基本概念 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=197&wh=helploving
视频 二级JAVA语言视频教程 集中了考试所有的难点和重点知识的精深讲解,可以保证既不漏掉考试必需的知识点,又不加重考生备考负担,使考生轻松、愉快地掌握知识点并领悟二级Java考试的真谛。 http://wwweducitycn/user/xch/fromaspid=23&wh=helploving
视频 网络安全设备与技术视频教程 介绍网络安全设备种类及工作原理、优缺点和典型应用。 http://wwweducitycn/user/xch/fromaspid=42&wh=helploving
视频 数据库系统工程师考试串讲视频教程 本串讲视频教程包括了数据库系统工程师考试的所有考点,对于教材中没有涉及到的知识点或者讲得不详细的知识点,进行了详细的归类。 http://wwweducitycn/user/xch/fromaspid=67&wh=helploving
视频 软件设计师考试培训 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=177&wh=helploving
视频 全国计算机等级考试视频教程 学习完教程后,就可以通过计算机等级考试。学赛网在线测试平台还可以进行在线测试。 http://wwweducitycn/user/xch/fromaspid=8&wh=helploving
视频 免费获取学赛币下载学赛视频方法 通过此方法,可以获取学赛币来下载希赛视频 http://wwweducitycn/user/xch/fromaspid=56&wh=helploving
视频 程序员视频教程 对考生在备考过程中最易产生疑问的知识点以及考试中常考知识点进行了较深入的探讨和总结,并配以例题进行详细的解说,是备考的得力助手。 http://wwweducitycn/user/xch/fromaspid=16&wh=helploving
视频 系统分析师考试串讲视频课程 根据最新的系统分析师考试大纲和作者进行考试辅导和阅卷的经验,对其中的难点问题进行了详细的分析和讲解。 http://wwweducitycn/user/xch/fromaspid=76&wh=helploving
视频 三级网络技术视频教程 集中了考试所有的难点和重点知识的精深讲解,可以保证既不漏掉考试必需的知识点,又不加重考生备考负担,使考生轻松、愉快地掌握知识点并领悟三级网络技术考试的真谛。 http://wwweducitycn/user/xch/fromaspid=17&wh=helploving
视频 程序员考试串讲视频教程 本串讲视频教程包括了程序员考试的所有考点,对于教材中没有涉及到的知识点或者讲得不详细的知识点,进行了详细的归类和讲解。 http://wwweducitycn/user/xch/fromaspid=62&wh=helploving
视频 数据仓库与数据挖掘视频教程 讲述了数据仓库(DW)和数据挖掘(DM)的基本方法,基本原理,重点说明这些方法的主要思想和技术。 http://wwweducitycn/user/xch/fromaspid=39&wh=helploving
视频 软考、考研、等考、自考,视频应有尽有 学赛视频学习平台,让考试不再困扰你,专业化的培训课程,权威的顾问讲授学习,各种规模的考试辅导视频应有尽有,通过考试轻而易举。 http://wwweducitycn/user/xch/fromaspid=125&wh=helploving
视频 软件设计师考试试题讲解视频教程 对软件设计师考试2005年5月到2007年11月的历年试题进行了详细讲解,对考试所涉及的知识点进行了深入分析和拓展。 http://wwweducitycn/user/xch/fromaspid=71&wh=helploving
视频 监理师试题讲解视频 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=186&wh=helploving
视频 软件配置管理 深入浅出,详细讲解 http://wwweducitycn/user/xch/fromaspid=194&wh=helploving
视频 信息技术基本概念 深入浅出,详细讲解 http://wwweducitycn/user/xch/fromaspid=195&wh=helploving
视频 二级Visual Basic语言视频教程 集中了考试所有的难点和重点知识的精深讲解,可以保证既不漏掉考试必需的知识点,又不加重考生备考负担,使考生轻松、愉快地掌握知识点并领悟二级Visual Basic考试的真谛。 http://wwweducitycn/user/xch/fromaspid=19&wh=helploving
视频 网络工程师试题讲解 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=188&wh=helploving
视频 项目管理师考试试题讲解 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=181&wh=helploving
视频 如何获得瑞星网络安全工程师 通过瑞星网络安全认证考试的学员(学习课程2个月后,在学赛网远程测试平台进行测试),可以获得由瑞星公司颁发的《网络安全工程师》认证。 http://wwweducitycn/user/xch/fromaspid=36&wh=helploving
视频 计算机专业英语教程 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=214&wh=helploving
视频 学赛视频点播平台,IT技术和管理视频大展销 学赛视频点播,信息资源学习的海洋,课程分工明确,细致,IT技术管理的展示平台,让你无时不在信息学习培训中得到知识的享受,专家讲解具体到位,学习课程安排合理流畅,通过学赛视频平台,找到你的需求,解决你学习的难题,轻松获取知识的硕果。 http://wwweducitycn/user/xch/fromaspid=124&wh=helploving
视频 网络工程师考试试题讲解视频教程 对2005年5月至2007年11月的网络工程师考试的试题进行了详细的讲解,对考试所涉及的知识点进行了深入分析。 http://wwweducitycn/user/xch/fromaspid=70&wh=helploving
视频 知识管理视频教程 使学员能全面了解知识管理的理论和体系,掌握知识管理规划与实施的方法和技术。 http://wwweducitycn/user/xch/fromaspid=40&wh=helploving
视频 自考数据结构与算法视频教程 由具有丰富教学经验的高级讲师讲解,讲解的过程中采用大量的例题对相关知识点进行讲解,帮助学习者能更好的理解、掌握相关知识点。 http://wwweducitycn/user/xch/fromaspid=26&wh=helploving
视频 NET框架程序设计视频教程 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=215&wh=helploving
视频 计算机网络应用基础知识 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=196&wh=helploving
视频 自考计算机原理与体系结构视频教程 由具有丰富教学经验的高级讲师讲解,讲解的过程中采用大量的例题对相关知识点进行讲解,帮助学习者能更好理解、掌握相关知识点。 http://wwweducitycn/user/xch/fromaspid=30&wh=helploving
视频 二级Access数据库视频教程 集中了考试所有的难点和重点知识的精深讲解,可以保证既不漏掉考试必需的知识点,又不加重考生备考负担,使考生轻松、愉快地掌握知识点并领悟二级Access考试的真谛。 http://wwweducitycn/user/xch/fromaspid=22&wh=helploving
视频 二级C语言视频教程 集中了考试所有的难点和重点知识的精深讲解,可以保证既不漏掉考试必需的知识点,又不加重考生备考负担,使考生轻松、愉快地掌握知识点并领悟二级C考试的真谛。 http://wwweducitycn/user/xch/fromaspid=20&wh=helploving
视频 项目管理师考试串讲视频片断 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=178&wh=helploving
视频 信息系统项目管理师考试试题讲解视频教程 对2005年5月至2006年11月的信息系统项目管理师考试的试题进行了详细的讲解,对考试所涉及的知识点进行了深入分析。 http://wwweducitycn/user/xch/fromaspid=73&wh=helploving
视频 信息处理技术员串讲 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=173&wh=helploving
视频 网络管理员试题讲解 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=185&wh=helploving
视频 计算机组装视频教程 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=216&wh=helploving
视频 自考局域网组网技术视频教程 由具有丰富教学经验的高级讲师讲解,讲解的过程中采用大量的例题对相关知识点进行讲解,帮助学习者能更好的理解、掌握相关知识点。 http://wwweducitycn/user/xch/fromaspid=27&wh=helploving
视频 数据库系统工程师视频教程 对近几年的数据库工程师考试中所有知识点进行了归类分析和总结,并针对这些重点、难点进行了详细的讲解。 http://wwweducitycn/user/xch/fromaspid=12&wh=helploving
视频 网站规划建设与管理维护视频教程 介绍网站建设的全过程,包括准备物理网络,构建Intranet, Internet接入,网站规划设计与建设,网站管理与维护,网站应用开发等。 http://wwweducitycn/user/xch/fromaspid=45&wh=helploving
视频 软件配置管理视频教程 学习完本教程,学员将能使用CVS和VSS工具进行软件版本控制。 http://wwweducitycn/user/xch/fromaspid=48&wh=helploving
视频 瑞星安全 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=191&wh=helploving
视频 UML建模实践视频教程 其涉及的主要内容有UML相关概念的讲解、UML的类元、UML的关系介绍、以及UML的九种图的讲解。 http://wwweducitycn/user/xch/fromaspid=49&wh=helploving
视频 二级Visual FoxPro语言视频教程 集中了考试所有的难点和重点知识的精深讲解,可以保证既不漏掉考试必需的知识点,又不加重考生备考负担,使考生轻松、愉快地掌握知识点并领悟二级Visual FoxPro考试的真谛。 http://wwweducitycn/user/xch/fromaspid=18&wh=helploving
视频 网络管理员考试串讲视频教程 对于网络基础知识、网络应用配置、HTML标记语言和ASP动态编程等有关技术和工具进行详细的讲解。并详细讲解了上下午试题解答方法和技巧,以及考试中出现的常见问题及对策。 http://wwweducitycn/user/xch/fromaspid=63&wh=helploving
视频 信息系统监理师视频教程 由具有丰富的信息系统建设与监理经验的高级工程师讲解,讲解的过程中采用理论+实践经验+例题解答的方法讲授。 http://wwweducitycn/user/xch/fromaspid=14&wh=helploving
视频 监理师培训视频 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=192&wh=helploving
视频 网络操作系统安全 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=201&wh=helploving
视频 网络管理员考试 深入浅出,详细讲解 http://wwweducitycn/user/xch/fromaspid=189&wh=helploving
视频 网络工程师考试串讲视频教程 对于网络基础知识、网络应用配置、交换机与路由器配置和网络安全防护等有关技术和工具进行详细的讲解。 http://wwweducitycn/user/xch/fromaspid=64&wh=helploving
视频 学赛视频点播平台,没有你不想要的课程 学赛培训学习视频学习,让你更直观的学习课程,视频专业,讲解到位,课程丰富,选择面广,无论你需要怎样的学习知识,都能在里面找到你想要的。给你学习的有效捷径。 http://wwweducitycn/user/xch/fromaspid=123&wh=helploving
视频 程序员试题视频讲解 深入浅出,详细讲解! http://wwweducitycn/user/xch/fromaspid=180&wh=helploving
视频 自考离散数学视频教程 涉及的主要内容有集合论、图论、数理逻辑、代数系统、组合数学以及有限状态自动机理论。 http://wwweducitycn/user/xch/fromaspid=25&wh=helploving
视频 系统分析师考试试题讲解视频教程 对2005年5月至2007年5月的系统分析师考试的试题进行了详细的讲解,对考试所涉及的知识点进行了深入分析。 http://wwweducitycn/user/xch/fromaspid=77&wh=helploving
图书 数字图书,按需印刷,希赛领航IT图书新模式 希赛图书领导IT业图书新模式,以按需印刷为本,按照学员要求制。 按需印刷将出版信息全部存储在计算机系统中,需要时可直接印刷成书,省去制版等中间环节,一册起印,即需即印,为用户提供了极大的便利。按需印刷以电子化库存替代图书的实物库存,避免了大量材料浪费和生产过程中的资源消耗。 按需印刷在有了确实的需求之后再组织生产图书,有效地避免了出版物生产的盲目性。它使各类出版、发行机构的职能发生了根本性变化,传统的分工模式被打破,出版商可直接面向读者,书店也可即卖即印图书,使出版链条上各个环节有机结合 http://wwweducitycn/user/xch/fromaspid=133&wh=helploving
图书 软考复习用书组合 系分、项管、软设、网工、数工、IT监理、软件评测师、程序员、网管考试复习用书组合 http://wwweducitycn/user/xch/fromaspid=59&wh=helploving
图书 加入希赛图书创作团队,成就IT人生理想 希赛诚聘图书作者。将为您的图书提供前期策划、后期稿件校对、编辑和宣传包装服务。 http://wwweducitycn/user/xch/fromaspid=78&wh=helploving
图书 希赛软考图书,09年国家软考指定教材 希赛软考图书为国家软考指定教材,专业,权威,为你软考保驾护航,给你最有力的软考复习培训。 http://wwweducitycn/user/xch/fromaspid=134&wh=helploving
图书 跟踪最新的IT技术-《IT人员新技术宝典丛书》 希赛为了让读者能跟踪计算机领域各方面的新技术、新知识,确定单位自己的发展方向,特组编了《IT人员新技术宝典丛书》 http://wwweducitycn/user/xch/fromaspid=58&wh=helploving
图书 希赛数字图书,IT人的技术图书大餐 希赛推出的数字图书,种类众多,覆盖各个专业领域,为IT人提供全方面的知识资源,快加入希赛,来享受IT图书大餐吧! http://wwweducitycn/user/xch/fromaspid=135&wh=helploving
图书 读希赛图书,成就IT梦想 希赛图书,专业编写,知识讲解精练,IT业领航者,成就您的梦想,为您插上翱翔的翅膀 ·希赛软考考前串讲 ·希赛贯通系列 ·希赛软考考点分析与例题精解 ·希赛IT人员新技术宝典 ·希赛IT技术讲堂 ·希赛软考试题分类精解(与题型练习) ·希赛计算机等级考试考点分析、题解与模拟 ·希赛软考冲刺指南 ·希赛软考模拟试题分析与解答 ·希赛软考题型精解与全真练习 ·希赛软考考点分析与真题详解 ·希赛软考疑难问题解答 ·希赛软考辅导教程 ·希赛软考案例分析教程 ·其他技术图书 ·希赛其他教育图书 http://wwweducitycn/user/xch/fromaspid=148&wh=helploving
图书 IT人的图书大餐:通读希赛所有数字图书 为感谢广大网友对希赛数字图书的厚爱,现隆重推出数字图书包月卡、包季卡和包年卡。 http://wwweducitycn/user/xch/fromaspid=81&wh=helploving
epoll是linux中IO多路复用的一种机制,I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。当然linux中IO多路复用不仅仅是epoll,其他多路复用机制还有select、poll,但是接下来介绍epoll的内核实现。
events可以是以下几个宏的集合:
epoll相比select/poll的优势 :
epoll相关的内核代码在fs/eventpollc文件中,下面分别分析epoll_create、epoll_ctl和epoll_wait三个函数在内核中的实现,分析所用linux内核源码为412版本。
epoll_create用于创建一个epoll的句柄,其在内核的系统实现如下:
sys_epoll_create:
可见,我们在调用epoll_create时,传入的size参数,仅仅是用来判断是否小于等于0,之后再也没有其他用处。
整个函数就3行代码,真正的工作还是放在sys_epoll_create1函数中。
sys_epoll_create -> sys_epoll_create1:
sys_epoll_create1 函数流程如下:
sys_epoll_create -> sys_epoll_create1 -> ep_alloc:
sys_epoll_create -> sys_epoll_create1 -> ep_alloc -> get_unused_fd_flags:
linux内核中,current是个宏,返回的是一个task_struct结构(我们称之为进程描述符)的变量,表示的是当前进程,进程打开的文件资源保存在进程描述符的files成员里面,所以current->files返回的当前进程打开的文件资源。rlimit(RLIMIT_NOFILE) 函数获取的是当前进程可以打开的最大文件描述符数,这个值可以设置,默认是1024。
相关视频推荐:
支撑亿级io的底层基石 epoll实战揭秘
网络原理tcp/udp,网络编程epoll/reactor,面试中正经“八股文”
学习地址:C/C++Linux服务器开发/后台架构师零声教育-学习视频教程-腾讯课堂
需要更多C/C++ Linux服务器架构师学习资料加群 812855908 获取(资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等),免费分享
__alloc_fd的工作是为进程在[start,end)之间(备注:这里start为0, end为进程可以打开的最大文件描述符数)分配一个可用的文件描述符,这里就不继续深入下去了,代码如下:
sys_epoll_create -> sys_epoll_create1 -> ep_alloc -> get_unused_fd_flags -> __alloc_fd:
然后,epoll_create1会调用anon_inode_getfile,创建一个file结构,如下:
sys_epoll_create -> sys_epoll_create1 -> anon_inode_getfile:
anon_inode_getfile函数中首先会alloc一个file结构和一个dentry结构,然后将该file结构与一个匿名inode节点anon_inode_inode挂钩在一起,这里要注意的是,在调用anon_inode_getfile函数申请file结构时,传入了前面申请的eventpoll结构的ep变量,申请的file->private_data会指向这个ep变量,同时,在anon_inode_getfile函数返回来后,ep->file会指向该函数申请的file结构变量。
简要说一下file/dentry/inode,当进程打开一个文件时,内核就会为该进程分配一个file结构,表示打开的文件在进程的上下文,然后应用程序会通过一个int类型的文件描述符来访问这个结构,实际上内核的进程里面维护一个file结构的数组,而文件描述符就是相应的file结构在数组中的下标。
dentry结构(称之为“目录项”)记录着文件的各种属性,比如文件名、访问权限等,每个文件都只有一个dentry结构,然后一个进程可以多次打开一个文件,多个进程也可以打开同一个文件,这些情况,内核都会申请多个file结构,建立多个文件上下文。但是,对同一个文件来说,无论打开多少次,内核只会为该文件分配一个dentry。所以,file结构与dentry结构的关系是多对一的。
同时,每个文件除了有一个dentry目录项结构外,还有一个索引节点inode结构,里面记录文件在存储介质上的位置和分布等信息,每个文件在内核中只分配一个inode。 dentry与inode描述的目标是不同的,一个文件可能会有好几个文件名(比如链接文件),通过不同文件名访问同一个文件的权限也可能不同。dentry文件所代表的是逻辑意义上的文件,记录的是其逻辑上的属性,而inode结构所代表的是其物理意义上的文件,记录的是其物理上的属性。dentry与inode结构的关系是多对一的关系。
sys_epoll_create -> sys_epoll_create1 -> fd_install:
总结epoll_create函数所做的事:调用epoll_create后,在内核中分配一个eventpoll结构和代表epoll文件的file结构,并且将这两个结构关联在一块,同时,返回一个也与file结构相关联的epoll文件描述符fd。当应用程序操作epoll时,需要传入一个epoll文件描述符fd,内核根据这个fd,找到epoll的file结构,然后通过file,获取之前epoll_create申请eventpoll结构变量,epoll相关的重要信息都存储在这个结构里面。接下来,所有epoll接口函数的操作,都是在eventpoll结构变量上进行的。
所以,epoll_create的作用就是为进程在内核中建立一个从epoll文件描述符到eventpoll结构变量的通道。
epoll_ctl接口的作用是添加/修改/删除文件的监听事件,内核代码如下:
sys_epoll_ctl:
根据前面对epoll_ctl接口的介绍,op是对epoll操作的动作(添加/修改/删除事件),ep_op_has_event(op)判断是否不是删除操作,如果op != EPOLL_CTL_DEL为true,则需要调用copy_from_user函数将用户空间传过来的event事件拷贝到内核的epds变量中。因为,只有删除操作,内核不需要使用进程传入的event事件。
接着连续调用两次fdget分别获取epoll文件和被监听文件(以下称为目标文件)的file结构变量(备注:该函数返回fd结构变量,fd结构包含file结构)。
接下来就是对参数的一些检查,出现如下情况,就可以认为传入的参数有问题,直接返回出错:
当然下面还有一些关于操作动作如果是添加操作的判断,这里不做解释,比较简单,自行阅读。
在ep里面,维护着一个红黑树,每次添加注册事件时,都会申请一个epitem结构的变量表示事件的监听项,然后插入ep的红黑树里面。在epoll_ctl里面,会调用ep_find函数从ep的红黑树里面查找目标文件表示的监听项,返回的监听项可能为空。
接下来switch这块区域的代码就是整个epoll_ctl函数的核心,对op进行switch出来的有添加(EPOLL_CTL_ADD)、删除(EPOLL_CTL_DEL)和修改(EPOLL_CTL_MOD)三种情况,这里我以添加为例讲解,其他两种情况类似,知道了如何添加监听事件,其他删除和修改监听事件都可以举一反三。
为目标文件添加监控事件时,首先要保证当前ep里面还没有对该目标文件进行监听,如果存在(epi不为空),就返回-EEXIST错误。否则说明参数正常,然后先默认设置对目标文件的POLLERR和POLLHUP监听事件,然后调用ep_insert函数,将对目标文件的监听事件插入到ep维护的红黑树里面:
sys_epoll_ctl -> ep_insert:
前面说过,对目标文件的监听是由一个epitem结构的监听项变量维护的,所以在ep_insert函数里面,首先调用kmem_cache_alloc函数,从slab分配器里面分配一个epitem结构监听项,然后对该结构进行初始化,这里也没有什么好说的。我们接下来看ep_item_poll这个函数调用:
sys_epoll_ctl -> ep_insert -> ep_item_poll:
ep_item_poll函数里面,调用目标文件的poll函数,这个函数针对不同的目标文件而指向不同的函数,如果目标文件为套接字的话,这个poll就指向sock_poll,而如果目标文件为tcp套接字来说,这个poll就是tcp_poll函数。虽然poll指向的函数可能会不同,但是其作用都是一样的,就是获取目标文件当前产生的事件位,并且将监听项绑定到目标文件的poll钩子里面(最重要的是注册ep_ptable_queue_proc这个poll callback回调函数),这步操作完成后,以后目标文件产生事件就会调用ep_ptable_queue_proc回调函数。
接下来,调用list_add_tail_rcu将当前监听项添加到目标文件的f_ep_links链表里面,该链表是目标文件的epoll钩子链表,所有对该目标文件进行监听的监听项都会加入到该链表里面。
然后就是调用ep_rbtree_insert,将epi监听项添加到ep维护的红黑树里面,这里不做解释,代码如下:
sys_epoll_ctl -> ep_insert -> ep_rbtree_insert:
前面提到,ep_insert有调用ep_item_poll去获取目标文件产生的事件位,在调用epoll_ctl前这段时间,可能会产生相关进程需要监听的事件,如果有监听的事件产生,(revents & event->events 为 true),并且目标文件相关的监听项没有链接到ep的准备链表rdlist里面的话,就将该监听项添加到ep的rdlist准备链表里面,rdlist链接的是该epoll描述符监听的所有已经就绪的目标文件的监听项。并且,如果有任务在等待产生事件时,就调用wake_up_locked函数唤醒所有正在等待的任务,处理相应的事件。当进程调用epoll_wait时,该进程就出现在ep的wq等待队列里面。接下来讲解epoll_wait函数。
总结epoll_ctl函数:该函数根据监听的事件,为目标文件申请一个监听项,并将该监听项挂人到eventpoll结构的红黑树里面。
epoll_wait等待事件的产生,内核代码如下:
sys_epoll_wait:
首先是对进程传进来的一些参数的检查:
参数全部检查合格后,接下来就调用ep_poll函数进行真正的处理:
sys_epoll_wait -> ep_poll:
ep_poll中首先是对等待时间的处理,timeout超时时间以ms为单位,timeout大于0,说明等待timeout时间后超时,如果timeout等于0,函数不阻塞,直接返回,小于0的情况,是永久阻塞,直到有事件产生才返回。
当没有事件产生时((!ep_events_available(ep))为true),调用__add_wait_queue_exclusive函数将当前进程加入到ep->wq等待队列里面,然后在一个无限for循环里面,首先调用set_current_state(TASK_INTERRUPTIBLE),将当前进程设置为可中断的睡眠状态,然后当前进程就让出cpu,进入睡眠,直到有其他进程调用wake_up或者有中断信号进来唤醒本进程,它才会去执行接下来的代码。
如果进程被唤醒后,首先检查是否有事件产生,或者是否出现超时还是被其他信号唤醒的。如果出现这些情况,就跳出循环,将当前进程从ep->wp的等待队列里面移除,并且将当前进程设置为TASK_RUNNING就绪状态。
如果真的有事件产生,就调用ep_send_events函数,将events事件转移到用户空间里面。
sys_epoll_wait -> ep_poll -> ep_send_events:
ep_send_events没有什么工作,真正的工作是在ep_scan_ready_list函数里面:
sys_epoll_wait -> ep_poll -> ep_send_events -> ep_scan_ready_list:
ep_scan_ready_list首先将ep就绪链表里面的数据链接到一个全局的txlist里面,然后清空ep的就绪链表,同时还将ep的ovflist链表设置为NULL,ovflist是用单链表,是一个接受就绪事件的备份链表,当内核进程将事件从内核拷贝到用户空间时,这段时间目标文件可能会产生新的事件,这个时候,就需要将新的时间链入到ovlist里面。
仅接着,调用sproc回调函数(这里将调用ep_send_events_proc函数)将事件数据从内核拷贝到用户空间。
sys_epoll_wait -> ep_poll -> ep_send_events -> ep_scan_ready_list -> ep_send_events_proc:
ep_send_events_proc回调函数循环获取监听项的事件数据,对每个监听项,调用ep_item_poll获取监听到的目标文件的事件,如果获取到事件,就调用__put_user函数将数据拷贝到用户空间。
回到ep_scan_ready_list函数,上面说到,在sproc回调函数执行期间,目标文件可能会产生新的事件链入ovlist链表里面,所以,在回调结束后,需要重新将ovlist链表里面的事件添加到rdllist就绪事件链表里面。
同时在最后,如果rdlist不为空(表示是否有就绪事件),并且由进程等待该事件,就调用wake_up_locked再一次唤醒内核进程处理事件的到达(流程跟前面一样,也就是将事件拷贝到用户空间)。
到这,epoll_wait的流程是结束了,但是有一个问题,就是前面提到的进程调用epoll_wait后会睡眠,但是这个进程什么时候被唤醒呢?在调用epoll_ctl为目标文件注册监听项时,对目标文件的监听项注册一个ep_ptable_queue_proc回调函数,ep_ptable_queue_proc回调函数将进程添加到目标文件的wakeup链表里面,并且注册ep_poll_callbak回调,当目标文件产生事件时,ep_poll_callbak回调就去唤醒等待队列里面的进程。
总结一下epoll该函数: epoll_wait函数会使调用它的进程进入睡眠(timeout为0时除外),如果有监听的事件产生,该进程就被唤醒,同时将事件从内核里面拷贝到用户空间返回给该进程。
在我们日常生活中会遇到许许多多的问题,如果一个服务端要接受很多客户端的数据,该怎么办?多线程并发内存不够怎么办?所以我们需要了解线程池的相关知识。
1线程池的简介
线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程但线程的数目永远不会超过最大值。超过最大值的线程可以排队,但他们要等到其他线程完成后才启动。
2线程池的组成
1、线程池管理器(ThreadPoolManager):用于创建并管理线程池
2、工作线程(WorkThread): 线程池中线程
3、任务接口(Task):每个任务必须实现的接口,以供工作线程调度任务的执行。
4、任务队列:用于存放没有处理的任务。提供一种缓冲机制。
3线程池的主要优点
1避免线程太多,使得内存耗尽
2避免创建与销毁线程的代价
3任务与执行分离
1线程池结构体定义
代码如下(示例):
相关视频推荐
150行代码,带你手写线程池,自行准备linux环境
C++后台开发该学哪些内容,标准技术路线及面经与算法该如何刷
学习地址:C/C++Linux服务器开发/后台架构师零声教育-学习视频教程-腾讯课堂
需要更多C/C++ Linux服务器架构师学习资料加qun 812855908 (资料包括C/C++,Linux,golang技术,内核,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg,大厂面试题 等)
2接口定义
代码如下(示例):
3回调函数
代码如下(示例):
4全部代码(加注释)
代码如下(示例):
关于线程池是基本代码就在上面了,关于编程这一部分内容,我建议大家还是要自己去动手实现,如果只是单纯的看了一遍,知识这块可能会记住,但是操作起来可能就比较吃力,万事开头难,只要坚持下去,总会有结果的。
我的c语言只有二级水平,班门弄斧了。
似乎,linux本身就有几个不错的开源视频服务器,
如果要求不高的话可以直接使用他们的;
如果他们的不能达到要求,可以使用c些一些代码做转换,然后使用popen,system之类的调用;
或者,借鉴开源的视频服务器代码自己深度加工;
gstreamer本身就是专门处理视频流的,可以看看能不能用上。
0条评论