Socket网络编程相关问题请教。 小弟不才,从前人那里学习到Linux环境下socket相关网络编程,因所用的开发平台是X86平台,虚拟机上安装的是Ubuntu操作系统,在usr/include这个文件夹下有sys这个文件夹,所以在网上搜到很多有关socket的代码都可以轻而易举的编译通过,也能理解。
虚拟机系统自带sys这个文件夹
见下图红色框中的代码,都与sys文件夹中的头文件有关。 如今我购买了OK335XS开发板,因这里是ARM平台,与X86不兼容,按照随开发板带的资料已经在虚拟机下安装交叉编译器,第一个hello world.ko程序已经成功运行。不过这里用到的输出字符函数不是printf,而是printk。据说这两种输出方式是有区别的(我们暂且不追究这个问题)。下面的是关键问题:arm平台的内核是kernel-3.2,在其主目录下没有sys这个文件夹(听说这个sys是文件系统),而在其include文件夹中也没有sys这个文件夹,我试着从Ubuntu中将sys文件夹拷贝过来,但发现不兼容,所谓牵一发而动全身,首先是找不到sys/socket.h sys/types.h这样的错误,细查其中socket.h代码发现 其中的所包含头文件也找不到,我是翻遍了里面的各个文件夹,虽说有同名,还是内容还不一样。 遇到这样的问题真的是让我束手无策啊,在百度里,我搜索:arm Linux 网络编程或者armLinux socket编程所搜索的代码也均是#include<sys/socket.h>这样的写法,为什么他们这样写就能通过,我想肯定是他们的内核支持socket编程。我曾经从Linux官方下载了最新的内核,好像最新内核中也没有sys这个文件夹,这到底是怎么回事?我该怎么办,下面这个是我所说的购买的开发板。 file:///C:/Users/xyg/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg |