关于windows下C++程序移植到linux下的一些头文件对应问题
在windows下C++程序包含了个winsock2.h头文件那么我移植到linux下有没有什么头文件与之相对应的如果没有该怎么改...
在windows下 C++程序包含了个winsock2.h头文件 那么我移植到linux下有没有什么头文件与之相对应的 如果没有 该怎么改
展开
2014-03-05
展开全部
必须要封装osa适配层了,两者有些API有差异,靠单纯的换头文件搞不定。
比如你想同时在linux和windows上使用stat这个函数,同样是包含#include<sys/stat.h>,但是stat的结构体根本就不一样。
linux版本:
typedef struct stat
{
unsigned long st_dev; /* device ID number */
unsigned long st_ino; /* file serial number */
unsigned short st_mode; /* file mode (see below) */
short st_nlink; /* number of links to file */
short st_uid; /* user ID of file's owner */
short st_gid; /* group ID of file's group */
unsigned long st_rdev; /* device ID, only if special file */
unsigned long st_size; /* size of file, in bytes */
unsigned long st_atime; /* time of last access */
unsigned long st_mtime; /* time of last modification */
unsigned long st_ctime; /* time of last change of file status */
long st_blksize;
long st_blocks;
unsigned int st_attrib; /* file attribute byte (dosFs only) */
}stat_type;
windows版本:
struct stat {
_dev_t st_dev;
_ino_t st_ino;
unsigned short st_mode;
short st_nlink;
short st_uid;
short st_gid;
_dev_t st_rdev;
_off_t st_size;
time_t st_atime;
time_t st_mtime;
time_t st_ctime;
};
展开全部
与这几个头文件对应
#include<sys/socket.h>
#include<arpa/inet.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
但是函数调用方式要注意,有变化
#include<sys/socket.h>
#include<arpa/inet.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
但是函数调用方式要注意,有变化
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在linux下, 最好还是用到函数时去man下,了解使用方法、参数,返回值等,然后在自己实现的code里添加相应的头文件即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询