为了账号安全,请及时绑定邮箱和手机立即绑定

Linux

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统

来自 Android JAVA Linux
因为他们只说的从你工资里扣,并没有告诉你,培训完就让你自己再去找工作的事,反正找不找的工作是你的事,每个月还是会来找你要钱,一个月一两千,一般要还一两年

因为他们只说的从你工资里扣,并没有告诉你,培训完就让你自己再去找工作的事,反正找不找的工作是你的事,每个月还是会来找你要钱,一个月一两千,一般要还一两年

已帮助用户85 5人反对 收起

回复
来自 JAVA Linux 测试
已采纳 WYSISYG回答:
在于你自己。别人给你的都是建议。而且每个人的观点都不同,你怎么摄取?最后还是靠自己。没主见干啥都干不好。 学会自己那主意。

在于你自己。别人给你的都是建议。而且每个人的观点都不同,你怎么摄取?最后还是靠自己。没主见干啥都干不好。 学会自己那主意。

已帮助用户2 0人反对 收起

回复
来自 JAVA Linux PHP
已采纳 SC_Chen回答:
首先,目前IT这块越来越广泛了,从事这行主要在于对于这行的悟性吧,如果纯自学就得看悟性,英语好坏初入门没什么影响,只在于走到中高层后如果要继续学习,必须查阅一些国外的技术文档这时候较为需要英语基础,初级只要学会使用各类搜索引擎及翻译系统就可以了。从哪学如果是想做WEB方向的建议是从HTML+CSS入手,先熟悉前端,然后接触下MVC方面的知识,后端建议可以从PHP+MYSQL入门,入门建议先学习基础,熟悉一些函数用法及架构,然后通过项目实际搭建加深经验,学习这块建议可以结合w3cschool这种手册型网站+慕课网的教学视频[ 查看全部 ]

首先,目前IT这块越来越广泛了,从事这行主要在于对于这行的悟性吧,如果纯自学就得看悟性,英语好坏初入门没什么影响,只在于走到中高层后如果要继续学习,必须查阅一些国外的技术文档这时候较为需要英语基础,初级只要学会使用各类搜索引擎及翻译系统就可以了。从哪学如果是想做WEB方向的建议是从HTML+CSS入手,先熟悉前端,然后接触下MVC方面的知识,后端建议可以从PHP+MYSQL入门,入门建议先学习基础,熟悉一些函数用法及架构,然后通过项目实际搭建加深经验,学习这块建议可以结合w3cschool这种手册型网站+慕课网的教学视频

已帮助用户5 1人反对 收起

回复
来自 Linux
上官二狗回答:
首先  你登录的是什么账号 如果是root 就是root 账号被禁止远程登录了 可以先尝试登录user账号 如何su切换到root

首先  你登录的是什么账号 如果是root 就是root 账号被禁止远程登录了 可以先尝试登录user账号 如何su切换到root

已帮助用户1 0人反对 收起

回复
来自 Linux
已采纳 蒲公英wsg回答:
Ubuntu

Ubuntu

已帮助用户5 1人反对 收起

回复
来自 Linux MySQL PHP
已采纳 pardon110回答:
修行靠自己

修行靠自

已帮助用户4 0人反对 收起

回复
来自 Linux MySQL PHP
Mr_hee回答:
我本来挺同情作者的,但是直到我看到这儿,才发现我错了。    http://www.imooc.com/wenda/detail/349154他自己提问,别人回答他 ,或许别人回答得有点不对,即使别人回答的不好,也没有必要骂人家,我真感觉这个人是个伪君子,真小人。

我本来挺同情作者的,但是直到我看到这儿,才发现我错了。    http://www.imooc.com/wenda/detail/349154

他自己提问,别人回答他 ,或许别人回答得有点不对,即使别人回答的不好,也没有必要骂人家,我真感觉这个人是个伪君子,真小人。

已帮助用户7 0人反对 收起

回复
已采纳 伪架构师回答:
佛曰: 一个程序猿如果不想写代码了, 可见他对生活, 菇娘, 万事万物都提不起兴趣了 ...哈哈,一年总有那么三百六十几天不想写代码,想吐。希望你存款够一年的生活费, 去过一年自己真正想过的生活, 远离人间, 无忧无虑, finally. 前半年不再关心科技话题, 取关了所有的科技类公众号, gichat , 自然也不写码。半年的时间过的飞快。后来有一天, 不小心触摸到了键盘的基准键, 于是你发现自己什么时候已经开始断断续续的写几行代码了, 但是仅限兴趣所致 。比如做了一个精美的博客,整理自己的已经掌握或者自以为已经掌握的知识。 在问答社区努力的实现每天的问答计划来力所能及帮助初学编程的人。 ...[ 查看全部 ]

佛曰: 一个程序猿如果不想写代码了, 可见他对生活, 菇娘, 万事万物都提不起兴趣了 ...

哈哈,一年总有那么三百六十几天不想写代码,想吐。

希望你存款够一年的生活费, 去过一年自己真正想过的生活, 远离人间, 无忧无虑, finally. 

前半年不再关心科技话题, 取关了所有的科技类公众号, gichat , 自然也不写码。

半年的时间过的飞快。后来有一天, 不小心触摸到了键盘的基准键, 于是你发现自己什么时候已经开始断断续续的写几行代码了, 但是仅限兴趣所致 。比如做了一个精美的博客,整理自己的已经掌握或者自以为已经掌握的知识。 在问答社区努力的实现每天的问答计划来力所能及帮助初学编程的人。 -- 我想不到你要如何找回编程的热情, 前提是, 你只是不爱工作了,但是还能体会到编程尤其使用编程技能在自己的感兴趣的领域带来的正向反馈。给自己一点时间吧。谁知道呢。

慢慢你已经开始写简历了,因为你发现,你和你真正想要的美好的按自己想要的生活之间,总差点什么。不工作的日子也真心没有你所以为的美好,更何况,银子也花的差不多了。

工作是万恶的, 但是却至少有一个好处,逼迫了掌握了行业的最新动向,打磨技艺  -- 去 TMD 工作,从新开始之后,应该把重心放在生活上面了, 因为工作不是全部。于是又过上了朝九晚十二的写 bug 生活。只是没玩没了的需求改再也不是你最不喜欢的事情了, 因为你找到几个替代,比如: 每一周读完一本书、背 150 个单词、读两个小章节的英文小说 ... TBD

已帮助用户4 0人反对 收起

回复
来自 Linux
已采纳 我是新手_请多指教回答:
linux的优点是:A)开放性:linux操作系统遵守GNU规范,代码共享,易于实现系统的裁剪和客制化的开发。B)多用户:系统资源可以被不同用户以各自的权限访问使用,互不影响。C)多任务和多线程:不同任务和线程几乎同时并发地处理独立的但却内在关联的一系列事件D)设备独立性:linux操作系统把所有外部设备统一当作设备文件来看待,只要安装它们的驱动程序,任何用户都可以象使用普通文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。E)丰富的网络功能:完善的内置网络是Linux的一大特点。Linux在通信和网络功能方面优于其他操作系统。其他操作系统不包含如此紧密地和内核结合在一起的连接网络的...[ 查看全部 ]

linux的优点是:
A)开放性:linux操作系统遵守GNU规范,代码共享,易于实现系统的裁剪和客制化的开发。
B)多用户:系统资源可以被不同用户以各自的权限访问使用,互不影响。
C)多任务和多线程:不同任务和线程几乎同时并发地处理独立的但却内在关联的一系列事件
D)设备独立性:linux操作系统把所有外部设备统一当作设备文件来看待,只要安装它们的驱动程序,任何用户都可以象使用普通文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。
E)丰富的网络功能:完善的内置网络是Linux的一大特点。Linux在通信和网络功能方面优于其他操作系统。其他操作系统不包含如此紧密地和内核结合在一起的连接网络的能力,也没有内置这些联网特性的灵活性。而Linux为用户提供了完善的、强大的网络功能。 
F)良好的可移植性

已帮助用户7 0人反对 收起

回复
来自 JAVA Linux WebApp
已采纳 放羊的贤哥回答:
404都是路径错误,在struts中看看你的method和action等信息跟你的action层的请求处理是否匹配,而且你的浏览器地址好像只写了项目名而没有方法或者jsp名吧,怎么可能出来页面

404都是路径错误,在struts中看看你的method和action等信息跟你的action层的请求处理是否匹配,而且你的浏览器地址好像只写了项目名而没有方法或者jsp名吧,怎么可能出来页面

已帮助用户0 0人反对 收起

回复
来自 Linux
InMyCity回答:
网管,网管,网管


网管,网管,网管

已帮助用户15 0人反对 收起

回复
班克西回答:
因为慕课本来就不支持你分享收费课程的,不管你是给同学免费看还是收费看,你这个操作本来就是违规的了,慕课限定了你账号登录终端的数量。只有发邮件申诉,但你理亏,只有看情况了。

因为慕课本来就不支持你分享收费课程的,不管你是给同学免费看还是收费看,你这个操作本来就是违规的了,慕课限定了你账号登录终端的数量。只有发邮件申诉,但你理亏,只有看情况了。

已帮助用户1 0人反对 收起

回复
已采纳 maoruibin回答:
你要看你文件是否已经正确发到tomcat上了。tomcat文件夹下有个conf文件夹,里面有个server.xml你看下你是不是配置好了这个<Context docBase="path/to/file"/>

你要看你文件是否已经正确发到tomcat上了。tomcat文件夹下有个conf文件夹,里面有个server.xml你看下你是不是配置好了这个

<Context docBase="path/to/file"/>

已帮助用户1 0人反对 收起

回复
来自 Linux
啊哼回答:
Redhat、Debian、Ubuntu、RHEL

Redhat、Debian、Ubuntu、RHEL

已帮助用户2 0人反对 收起

回复
来自 Linux
已采纳 onemoo回答:
错误是“没有找到 C 库中的数学库”。这通常可能意味着你编译环境安装得不完整。你的 gcc 是怎么装的? 都装了哪些包?

错误是“没有找到 C 库中的数学库”。这通常可能意味着你编译环境安装得不完整。

你的 gcc 是怎么装的? 都装了哪些包?

已帮助用户1 0人反对 收起

回复
来自 C Linux
已采纳 冯宝宝回答:
可以用来表示字符串结束标志,在你这里如果输出字符串a,就会变成hell,,,但是你这个代码好奇怪,就是这样

可以用来表示字符串结束标志,在你这里如果输出字符串a,就会变成hell,,,但是你这个代码好奇怪,就是这样

已帮助用户1 0人反对 收起

回复
来自 Linux
风铃1回答:
AVA项目如何通过Docker实现持续部署(只需简单四步),即: 开发同学通过git push上传代码,经Git和Jenkins配合,自动完成程序部署、发布,全程无需运维人员参与。这是一种真正的容器级的实现,这个带来的好处,不仅仅是效率的...[ 查看全部 ]

AVA项目如何通过Docker实现持续部署(只需简单四步),即: 开发同学通过git push上传代码,经Git和Jenkins配合,自动完成程序部署、发布,全程无需运维人员参与。

这是一种真正的容器级的实现,这个带来的好处,不仅仅是效率的提升,更是一种变革: * 开发人员第一次真正为自己的代码负责——终于可以跳过运维和测试部门,自主维护运行环境(首先是测试/开发环境)。 

本文是cSphere Docker实战视频第二讲的文字版,本文联合作者@张春源同学(任职希云cSphere)即为视频主讲人,关于更多系列视频,详见这里

福利:点击文末的“实战视频”即可手机欣赏本文对应的实战视频哦。


难者不会,会者不难。通过简单的4个配置,即可优雅地实现持续部署。本文依惯例放上目录, 1. 持续部署的技术思路 2. 效果展示 3. 配置Git和Jenkins联动 4. 配置Jenkins自动更新代码 5. 效果图文详解 6. FAQ

好吧,我们正式开始。

1. 持续部署的技术思路

在本例中,假设我们JAVA项目的名称为hello。简要的技术思路如下。

 

本案例中假设代码托管在git.oschina.com上,Jenkins和Docker Registry(类似于yum源)各运行在一个Docker容器中。JAVA项目自己也单独运行在一个叫hello的容器中。 本文采取的持续部署方案,是从私有的Docker Reistry拉取代码。有些变通的方案,把代码放在宿主机上,让容器通过卷组映射来读取。这种方法不建议的原因是,将代码拆分出容器,这违背了Docker的集装箱原则:

这也导致装卸复杂度增加。从货运工人角度考虑,整体才是最经济的。这样,也才能实现真正意义的容器级迁移。 或者说,容器时代,抛弃过去文件分发的思想,才是正途。本文最后的问答环节对此有更多阐述。 容器即进程。我们采用上述方案做Docker持续部署的原因和意义,也在于此。容器的生命周期,应该远远短于虚拟机,容器出现问题,应该是立即杀掉,而不是试图恢复。

2. 效果展示

本文最后实现的效果,究竟有多惊艳呢?且看如下的演示。

2.1 程序代码更新前的效果

我们以时间戳来简洁、显式的表述程序更新情况。

5ab3684f0001788405860226.jpg 

2.2 提交程序代码更新

本例中,我们把首页的时间戳从201506181750,修改为201506191410(见如下)。

5ab368500001b04a05920438.jpg

2.3 上传新代码到Git

顺序执行如下操作,输入正确的git账号密码。


然后呢? 然后什么都不用做了。端杯茶(如果不喜欢咖啡的话),静静地等待自动部署的发生, 旁观一系列被自动触发的过程,机器人似的运转起来(请容稍候再加以描述)。

为什么需要3~5分钟?只是因为本案例中的JAVA项目,需要从国外download Maven程序包,以供Jenkins调用和编译JAVA。正式应用环境中,可以把Maven源放在国内或机房。如果仅仅需要对PHP项目做持续部署,那就更快捷了。

2.4 查看代码更新后的效果

在静静地等待几分钟后,新的代码确实已经自动部署完毕。


那么,这一切怎么实现的呢?很复杂么?不然。只要按照如下几步,便可快速实现哦。

3. 配置Git和Jenkins联动

这个过程也是难者不会,会者不难。主要分为如下三步。

3.1 Jenkins配置Git源

Jenkins中新建项目java-app,并配置从Git拉取程序代码。具体如下:


3.2 Jenkins配置远程构建

Jenkins中配置token,以供git远程调用时使用。


3.3 Git开启钩子

怎么让Git在接收到用户更新的代码后,把消息和任务传递给Jenkins呢?这借助于Git的hook功能,配置起来也非常简单,如下。


4. 配置Jenkins自动更新代码

Jekins在接收到Git传递过来的消息后,再触发一个远程构建(到目标服务器),按照预定义的任务列表,执行一系列的工作,重建容器等。详见如下:


我们把其中最关键的Shell脚本内容摘抄出来。

 


5. 效果图文详解

在2.3这个章节中,我们当时的操作如下,这个目的是向Git提交更新代码。

 

当时并没有细说后续发生的事情,既然上面已经说清楚了原理,那我们就可以接下来说说实际发生的事情啦。

5.1 上传代码到Git

这里貌似整个过程已经完成并顺利退出。其实,后台的工作才刚刚开始哦。


这时会触发Git服务器向相应的Jenkins服务器发出一个操作请求,此工作太过迅速,也没啥好说的,我们接下来看Jenkins都干啥子了。

5.2 Jenkins进行的精彩互动

1)Jenkins会自动"冒出来"一个构建任务。


2)我们点进来,看看具体操作日志。是的,正在接受来自Git的任务。




3)下载Maven相关的软件包(就是这个过程慢)。 


4)下载完成后,就开始利用maven BUILD 新的hello项目包。 


5)然后重建Maven容器,构建新的Image并Push到Docker私有库中。 


6)最后,重新把Docker容器拉起来。这样,又新生了。呵呵 


6. FAQ

问题1:采用这么相对复杂的办法(而不是把更新代码放在宿主机然后卷组映射),是因为项目基于JAVA么;是否PHP项目就可以采用更新代码放在宿主机然后卷组映射这种方式?

回答1:将代码拆分出容器,违背了集装箱原则。导致装卸复杂度增加。从货运工人角度考虑,整体才是最经济的。一切版本化。抛弃过去的文件分发。这是正途。至于文件大小,大的war包也就50M或100M,在现有网络下不成问题,性能问题最好优化。另外建议关注docker 2 docker,p2p传输。

问题2:如果整体代码超过500m或者1g以上,整体集装箱是否就不太好了?如果容器与代码分离,镜像就100m左右(2层,base+服务),然后代码的话,是放到共享存储里,每个代码有更新,比如svn的代码,可以直接在共享存储里进行svn update就可以控制版本 

回答2:如果你的代码500M,那只能说明业务开发该打板子了。

问题3:如果测试环境使用您提供的完整集装箱服务还行,但在生产环境,集群里运行docker做应用,如果每个容器都是有完整的代码,是否有点臃肿,不如每个集群节点里就运行基础服务镜像,通过卷组功能绑定共享存储里的代码,加上Crontab、Python和Shell脚本,这样每次代码更新就1次就行了。

回答3:环境一致性,在过去从来没有解决好。10年前我们做PaaS时,和这个做法类似。不是说不好,时代变了,用脚本东拼西凑,终究难有好的系统。不能只考虑现在的方便,容器技术和vm如果类比,我觉得会让自己下决定时很纠结。

补充3:脚本一般是典型的运维工程师思维,quick & dirty。一般很难做成一个产品或者系统。整体考虑和扩展性考虑都比较少。现在做docker的难点在于到底怎么看待它。到底是拿它做调度的基本单位,还是部署的基本单位考虑清楚,再聊方案。



已帮助用户2 0人反对 收起

回复
已采纳 Ms_zhang0319123回答:
ocker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。[1] Docker面向对象容器    对象    镜像    类    Docker采用 C/S架构 Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建、运行、分发容器)。 客户端和服务端既可以运行在一个机器上,也可通过 socket 或者RESTful API 来进行通信。Docker daemon 一般在宿主主机后台运行,等待接收来自客户端的消息。 Docker 客户...[ 查看全部 ]

ocker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。[1] 

Docker

面向对象

容器    对象    

镜像    类    

Docker采用 C/S架构 Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建、运行、分发容器)。 客户端和服务端既可以运行在一个机器上,也可通过 socket 或者RESTful API 来进行通信。

Docker daemon 一般在宿主主机后台运行,等待接收来自客户端的消息。 Docker 客户端则为用户提供一系列可执行命令,用户用这些命令实现跟 Docker daemon 交互。



已帮助用户1 0人反对 收起

回复
已采纳 书旅回答:
学linux,肯定要在windows上安装一个linux虚拟机呀,为什么不敢安装,网上都有超详细安装过程。不过建议初学linux命令,安装服务器版的,对学习基础命令有很大帮助,我有一篇博客是写安装ubuntu14.04-server的虚拟机,明天给你发链接,你可以参考一下

学linux,肯定要在windows上安装一个linux虚拟机呀,为什么不敢安装,网上都有超详细安装过程。不过建议初学linux命令,安装服务器版的,对学习基础命令有很大帮助,我有一篇博客是写安装ubuntu14.04-server的虚拟机,明天给你发链接,你可以参考一下

已帮助用户1 0人反对 收起

回复
来自 JAVA JQuery Linux
已采纳 望远回答:
我记得以前看过,好早之前就调整成500积分了吧。没怎么注意,这些都不是重点,积分只是附带的东西,你的知识不会因为积分的增加而增加,而更有可能的是因为知识的深度和广度的不断拓展,而附带的增加积分(平时逛逛猿问,回答力所能及的问题,接触各类的问题,验证自己的学习成果,发现自己的不足...)在这里学习不要本末倒置了。

我记得以前看过,好早之前就调整成500积分了吧。没怎么注意,这些都不是重点,积分只是附带的东西,你的知识不会因为积分的增加而增加,而更有可能的是因为知识的深度和广度的不断拓展,而附带的增加积分(平时逛逛猿问,回答力所能及的问题,接触各类的问题,验证自己的学习成果,发现自己的不足...)在这里学习不要本末倒置了。

已帮助用户0 0人反对 收起

回复
来自 Linux
SuperOwl回答:
ctrl+c

ctrl+c

已帮助用户2 0人反对 收起

回复
来自 PHP Linux
已采纳 killua0083回答:
第7行的你最外面用双引号   里面的 '$xuehao' ,'$name', '$grade' , 'now()' 都要用单引号,像我这样

第7行的你最外面用双引号   里面的 '$xuehao' ,'$name', '$grade' , 'now()' 都要用单引号,像我这样

已帮助用户1 0人反对 收起

回复
来自 JAVA Linux MySQL
已采纳 四季书生回答:
首先,不管是开发,测试,运维,想要做好有职业发展拿钱多,基本功,基础,思维能力与主动性是不可或缺的。如果你想转运维,先把那本《鸟哥的linux私房菜》看了,如果觉得轻车熟路很简单,那恭喜你,你入门了。所谓兴趣,一定是你经历了高峰,也经历了低谷,经历了畅快淋漓,也经历了抓耳挠腮,甚至经历了别人的指指点点仍然能够坚持走下去,否则,所谓的兴趣不堪一击。每一行都必须全身心投入,不断的努力,思考,最终掌握自己学习与进步的节奏。所以,我的建议是你静下心来想想,学历不是问题,现在会的少也不是问题,问题是你能不能在自己认定的道路上,坚持不懈的走下去。[ 查看全部 ]

首先,不管是开发,测试,运维,想要做好有职业发展拿钱多,基本功,基础,思维能力与主动性是不可或缺的。如果你想转运维,先把那本《鸟哥的linux私房菜》看了,如果觉得轻车熟路很简单,那恭喜你,你入门了。
所谓兴趣,一定是你经历了高峰,也经历了低谷,经历了畅快淋漓,也经历了抓耳挠腮,甚至经历了别人的指指点点仍然能够坚持走下去,否则,所谓的兴趣不堪一击。
每一行都必须全身心投入,不断的努力,思考,最终掌握自己学习与进步的节奏。
所以,我的建议是你静下心来想想,学历不是问题,现在会的少也不是问题,问题是你能不能在自己认定的道路上,坚持不懈的走下去。

已帮助用户7 0人反对 收起

回复
来自 C Linux
已采纳 onemoo回答:
好吧,我先讲下关于结构体和 typedef 的内容:先要分清楚什么是类型名,什么是变量名。C 语言中变量的声明是这样的形式:类型名 变量名。比如 int a 就是声明了一个变量,名为a,类型是 int。现在来说说结构体是什么。一般这样声明一个结构体:struct ABC { ... };这一句应该看作是定义了一种类型——形式为结构体的类型,类型名叫 ABC。注意 ABC 相当于类型名而不是变量名。但如果你想声明一个结构体类型的变量却不能直接这样写:ABC a;  这是因为 C 语言类型系统并不会“直接”把用户自定义的标识符(identifier)视作类型——也就它不知道这个 ABC 是种类型。...[ 查看全部 ]

好吧,我先讲下关于结构体和 typedef 的内容:

先要分清楚什么是类型名,什么是变量名。C 语言中变量的声明是这样的形式:类型名 变量名。比如 int a 就是声明了一个变量,名为a,类型是 int。


现在来说说结构体是什么。一般这样声明一个结构体:

struct ABC { ... };

这一句应该看作是定义了一种类型——形式为结构体的类型,类型名叫 ABC。注意 ABC 相当于类型名而不是变量名

但如果你想声明一个结构体类型的变量却不能直接这样写:ABC a;  

这是因为 C 语言类型系统并不会“直接”把用户自定义的标识符(identifier)视作类型——也就它不知道这个 ABC 是种类型。所以使用这个 ABC 时一定要加上 struct,这会告知编译器 ABC 是种结构体类型。 那么声明一个结构体 ABC 类型的变量 a,就要写 struct ABC a


说到这里也许你会疑惑,一开始写的不就是 typedef struct CLIENT { ... }; 吗!  嗯,问题就出在 typedef 上!

如果这里没有 typedef,那么没问题,你就是定义了一个结构体类型 CLIENT。 不过后面想用到这 CLIENT 时就不能光写这个名字,前面必须要加上 struct! 只有加上struct,C 才会把 struct CLIENT 视作类型。 你可以看到有很多报错是“unknown type name ‘CLIENT'”。


但可惜,你这里写了 typedef,那么 typedef 是干什么的呢?

说简单点,typedef 是给一个类型再另起一个名字的!  它的语法是: typedef 原类型名 小名;     这个“小名”会被视为类型名。

比如 typedef int zhengxing;  这就是另起了一个类型名叫 zhengxing,它就表示 int 类型。之后你就可以写 zhengxing a;  这和写 int a; 一样都是声明了一个 int 类型变量 a。

所以我之前说你 typedef 的用法错了,应该能明白了吧?

我知道你写这句代码其实是想把这个结构体命名为 CLIENT。 但 typedef struct CLIENT { ... }; 这句没写完整,这里的 CLIENT 只是结构体本身的类型名。

那么你可以把这句改为  typedef struct 随便一个名字 { ... } CLIENT;

这样就可以直接用 CLIENT 来声明变量了,如 CLIENT a;   不需要前面加上struct了。

以上是关于 typedef 的说明。


还有错误就是题目中第 14 行(完整代码31行),fd_setrset,allset;  缺少类型。  这你应该知道怎么改吧。


79、85 行那里你申请内存是用的是 new!  C 语言中可没有 new 啊,不要和 C++ 搞混了!!

已帮助用户0 0人反对 收起

回复
首页上一页1234567下一页尾页

关联分类

  • Bootstrap

    Bootstrap是Twitter推出的一个开源的用于前端开发的工具...
  • Photoshop

    Adobe Photoshop,简称“PS”,是由Adobe Sys...
  • Html5

    HTML5它的综合性功能可助网页设计者和开发者们一臂之力,使他们在开...

本月最佳回答网友

关注我喜欢或专注的猿问分类

  • JavaScript
  • Node.js
  • Vue.js
  • React.JS
  • Html5
  • Html/CSS
  • AngularJS
  • WebApp
  • JQuery
  • Bootstrap
  • 前端工具
  • CSS3
  • Sass/Less
  • JAVA
  • Python
  • Go
  • PHP
  • C
  • C++
  • C#
  • MySQL
  • SQL Server
  • Oracle
  • MongoDB
  • Android
  • iOS
  • Unity 3D
  • Cocos2d-x
  • 大数据
  • 云计算
  • 深度学习
  • 机器学习
  • 测试
  • Linux
  • Photoshop
  • Maya
  • Premiere
  • ZBrush
  • 数据结构
  • Ruby
保存
意见反馈 常见问题 APP下载
官方微信