使用c++开发程序时,虽然c11和boost提供一些跨平台的特性支持,但是涉及到操作系统层面的一些功能还是不能有效地跨平台。

本文旨在提炼出这些经常使用的,但又不能跨平台的功能,形成一个工具库,方便以后使用。

该工具库共由两个文件组成: cross_platform_utils.h cross_platform_utils.cpp

h文件如下:

#ifndef _CROSS_PLATFORM_UTILS_
#define _CROSS_PLATFORM_UTILS_
#include <string>
#if defined _WIN32 || defined _WIN64
#define FILE_SEP "\\"
#define __FILENAME__ (strrchr(__FILE__, '\\') ? (strrchr(__FILE__, '\\') + 1) : __FILE__)
#else
#define FILE_SEP "/"
#define __FILENAME__ (strrchr(__FILE__, '/') ? (strrchr(__FILE__, '/') + 1) : __FILE__)
#endif
#define FILE_FUN  __FILENAME__ << ":" <<__FUNCTION__ << ":" << __LINE__ << "|"
#define FILE_FUN_STR string(__FILENAME__) + ":" + string(__FUNCTION__) + :" + string(__LINE__) + "|"
class CrossPlatformUtils
public:
	 * 获取当前线程唯一标识:tid
	 * 跨平台实现,与unix下的top显示和windows下的process explore查看的线程id一致
	static long GetTid();
	static bool IsProcessRunning(const std::string& process);
#endif // !_CROSS_PLATFORM_UTILS_

目前实现了两个接口,分别是获取线程id和检测进程是否已经运行。

cpp文件可以直接参考github代码:cross_platform_utils

把轮子放在一起,就可以更好地专注于业务,而不必为这些细节分神。

对于该项目中的任何问题,欢迎issue。

简介使用c++开发程序时,虽然c11和boost提供一些跨平台的特性支持,但是涉及到操作系统层面的一些功能还是不能有效地跨平台。本文旨在提炼出这些经常使用的,但又不能跨平台的功能,形成一个工具库,方便以后使用。代码结构该工具库共由两个文件组成: cross_platform_utils.h和cross_platform_utils.cpp。h文件如下:#ifndef _CROSS_PLATFORM_UTILS_#define _CROSS_PLATFORM_UTILS_#include 经典的C++ STLport-------SGI STL跨平台可移植版本,在以前有些编译器离符合 标准比较远的情况下 那时还是有用的,当然目前vc71已经比较接近标准了, 故目前不怎么用它了。 Boost---------准标准, 功能强大 涉及能想 即使是空类或新的 C/C++ 文件也包含样板代码,CLion 会自动生成这些代码。例如,当您添加一个新类时,CLion 会创建一个标头,其中已经放置了存根代码和标头保护,以及包含它的相应源文件。 最有用的... STLport——-SGI STL跨平台可移植版本,在以前有些编译器离符合 标准比较远的情况下 那时还是有用的,当然目前vc71已经比较接近标准了, 故目前不怎么用它了。 Boost———准标准, 功能强大 涉及能想的到的大部分非特别领域的算法, 先声明我的服务器是Ubuntu16.04,由标题可知,我的开发工具采用Visual Studio2019,使用c++y语言来实现windows-linux的跨平台开发。 二、关于跨平台 1. 什么是跨平台? 由百度百科可知,跨平台概念是软件开发中一个重要的概念,即不依赖于操作系统,也不依赖硬件环境。一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。 跨平台的定义就是指程序语言、软件或硬件设备可以在多种作业系统或不同硬件架构的电脑上运作。 简单来说,本文的跨平台就是,一份代码,在
文章目录一、背景二、动机三、方法3.1 Cross-scale Embedding Layer(CEL)3.2 Cross-former Block3.2.1 Long Short Distance Attention(LSDA)3.2.2 Dynamic position bias (DPB)3.4 CrossFormer 的变体四、效果五、代码 论文链接:https://arxiv.org/pdf/2108.00154.pdf 代码链接:https://github.com/cheerss/Cross
值得学习的C/C++语言开源项目(1)ACE 庞大、复杂,适合大型项目。开源、免费,不依赖第三方,支持跨平台。 http://www.cs.wustl.edu/~schmidt/ACE.html(2)Asio Asio基于Boost开发的异步IO,封装了Socket,简化基于socket程序的开发。 开源、免费,支持跨平台。 http://think-async.com/(3)POCO