windowslinux编程
windows下编程核心就是要使用Windows的机制进行编程。而且有MS出的API可以使用。ASCII C的语法,不全有效。
Linux下编程,其实和Unix下编程差别不大。基本都是ASCII C编程。另外,操作系统的程序运行机理也不一样。这个是关键。
㈡ 编程初学者用linux 电脑还是windows 电脑好
其实,对于编程初学者来说,在学习之前选择操作系统根据自身情况决定就可以了,哪个系统更加熟悉就选择哪个系统,毕竟学习编程前期都是以学习语法知识为重要,不涉及应用场景,系统的选择是无所谓的,但是以后深入学习之后,会根据不同的方向来选择操作系统。
比如web开发可以在Windows系统下进行,也可以在Linux系统下进行;对于大型互联网公司最好选择Linux系统,中小型公司可以选择Windows系统,当然也需要根据技术人员水平考虑。
对于大数据方向的话,就应该选择Linux操作系统,因为大数据平台部分都是基于Linux系统的。
㈢ Linux下编程和在Windows下编程有什么区别听别人说开源什么的,可是软件是开源的就是开源闭
个人见解:
linux是开源的,windows系统闭源。
linux下开源软件比较多,windows闭源比较多。编程工具也是,linux下大部分编程工具是开源的。
3.从编程代码来讲,linux和windows的区别应该不在于开闭源。而是编译器不一样,里面的库函数和类什么的也不一样,系统api不一样。
4.编写的程序用图不太一样,windows是桌面应用比较多,linux极少桌面编程。
5.还有就是由于linux系统是开源的,出现一些系统方面问题,你可以直接查看一下系统内核源码。使用的一些模块之类也一般是开源的,出现问题,也可以查源码。
6.其实我没看清楚,你是问:在windows系统写代码和linux的不同?还是问写一个windows的软件和linux软件的不同?
PS:本人不是程序员。答案是抄来的。
㈣ linux下编程和windows下的编程有什么区别
Linux编程c语言用的比较多一些,C++语言也常用,Linux编程调用的接口叫做“系统调用”,C标准库、第三方开源C/C++库也是常用的,Linux编程会用到许多代码库,代码库选择上比较灵活;但是Windows编程C语言就用的少了,用C语言调用Windows API编程叫做Win32编程,微软将Windows API作了C++封装,封装成了C++库叫MFC,因为MFC库是和微软编程工具VC++/VS进行捆绑的,加上MFC编程的便捷,所以Windows编程C语言用的比较少,而C++语言用的比较多,后来微软退出.NET平台后,C#语言也成为了Windows编程的主流语言。
另外就是Linux编程,编写命令行程序仍然占很大比例,而Windows命令行编程已经非常少了,Windows主要是图形界面编程。还有就是Linux上脚本编程很普遍,而Windows上脚本编程的程序规模都比较小,鉴于脚本语言(除了shell脚本)是跨平台的,在Windows上也可以用,而且有些脚本编程属于Web开发的范畴,这里就不讨论了。
㈤ 请比较Linux与Windows在网络编程方面的特点
找了一段,大致涉及到了您的问题:
一、socket的模式
socket一般有两种模式:同步和异步(windows网络编程技术中也可叫锁定和非锁定,Linux网络编程叫阻塞和非阻塞)。
二、socket的类型
socket一般有三种类型,基于TCP的流式套接字,基于UDP的数据报套接字和原始套接字。
三、socket的IO模型
socket
的IO模型是编程中使用socket两种模式的策略,它们适用的场合不同,在不同的操作系统上支持的模型也不同,例如windows从NT版本才开始支持
完成端口模型。Linux和Windows所支持的模型也有区别,当然也有相同的地方,可能叫法不一样,但大致思路是一样的,下面分别介绍windows
和Linux的IO模型
1、 Windows下的套接字IO模型:
A、 Select(选择)模型
用于同步socket的状态检测模型,又叫(Linux)多路复用,可以同时检测多个socket的状态
B、 WSAAsyncSelect(异步选择)模型
用于异步socket的异步事件设置,它是基于Windows消息的模型,必须先打开一个窗口,然后把窗口和socket的消息绑定,这样,在socket有消息通知时,操作系统便通知窗口,然后在窗口进行处理。
C、 WSAEventSelect(异步事件)模型
用
于异步socket的异步事件,它是基于网络事件的模型,先使用CreateEvent创建一个事件,然后使用WSAEventSelect进行事件绑
定,然后可以使用WaitForMultipleObject(Event)进行事件监听,可以同时监听多个事件,不光是socket的,比如可以监听使
用CreateWaitableTimer创建的Timer等。
D、 重叠IO模型
用
于异步socket,在创建socket时需要在创建函数WSASocket中使用WSA_FLAG_OVERLAPPED标志,然后在投递IO请求的时
候将一个Overlapped结构体指针赋给投递函数,可以使用WSAWaitForMultipleObject来监听事件,然后使用
WSAGetOverlappedResult来获取IO的状态,也可以在Overlapped结构体中使用完成例程来处理,即在投递函数中把完成例程赋
给投递函数。
E、 完成端口模型
它
是迄今为止最复杂的一种IO模型,当应用程序需要管理众多的套接字并且希望随着系统内安装的CPU数目的增多,应用程序的性能也可以线性增加,就可以使用
这种模型,它的原理是每个CPU可以单独负责一个线程的执行,避免线程的频繁切换。使用这种模型往往可以达到最佳的系统性能。
首
先需要使用CreateIOCompletePort来创建完成端口,然后将IO句柄和此端口绑定,绑定也是使用此函数,当然也可以一次完成。接着是创建
工作者线程,工作者线程会使用GetQueuedCompletionStatus进入完成端口维护的线程池,当有完成事件时,会激活一个线程。
2、 Linux下的IO模型
A、阻塞IO
B、非阻塞IO
C、IO多路复用(选择)
D、信号驱动
用于异步socket,首先设定信号处理函数,然后使用fcntl函数设定socket的拥有者,像windows下使用WSAAsncSelect设定socket的窗口一样。使用这种模型,当内核操作可以被操作的时候通知我们的应用程序
E、异步IO
当内核在所有操作完成后才会通知应用程序
四、socket的一些使用上的优化
A、缓冲区的优化,可以考虑让应用程序使用比较小的缓冲区,但同时使用多个WSARecv
B、使用socket选项SO_SNDBUF和SO_RCVBUF设置socket缓冲区大小,如果设为0,操作体系统会使用应用程序的缓冲区,这样避免了从系统缓冲区向用户区复制的开销
五、注意这些IO模型有些不光是针对socket的,其他的IO操作也可以使用,最常用使用的是WriteFile,ReadFile等函数。
其它查考网址:
http://blog.163.com/tianle_han/blog/static/6617826200821522743948/
http://blog.csdn.net/yibulianhua/article/details/5374317
㈥ linux下的c语言编程和windows下的c语言编程有什么区别
语言本身差别不大。主要主要是和系统交互的时候不同。一个是Linux的POSIX接口,一个是Windows的Win32 API。
Linux下的接口因为源自UNIX,有很多API明显是C库的风格,风格比较老旧。但是Win32 API风格更现代、更高级一些。比如Linux下fork/exec、Windows下CreateProcess。而且Windows的API提供很多图形界面的相关功能,比如支持窗口间操作。Linux下需要单独的GUI库比如GTK+等等。