Tag: 跨平台的

如何检查在Cygwin,Mac或Linux上运行?

我有一个在Windows / Cygwin和Mac和Linux上使用的shell脚本。 每个版本都需要稍微不同的variables。 shell / bash脚本如何检测它是在Cygwin中,在Mac上还是在Linux中运行?

如何在Python中获取主目录?

我需要获取当前login用户的主目录的位置。 目前,我一直在Linux上使用以下内容: os.getenv("HOME") 但是,这在Windows上不起作用。 什么是正确的跨平台的方式来做到这一点?

什么属于一个教育工具来演示人们在C / C ++中做出的无理假设?

我想为SO编写一个小小的教育工具,帮助初学者(和中级)程序员认识并挑战他们在C,C ++及其平台上的无理假设。 例子: “整数环绕” “每个人都有ASCII” “我可以将函数指针存储在void *中 我认为可以在各种平台上运行一个小型的testing程序,这个程序运行“合理”的假设,即从我们的经验来看,通常是由许多缺乏经验/半经验的主stream开发人员制作的,并logging他们在不同机器上打破的方式。 这样做的目的并不是要certificate做某件事是“安全的”(这是不可能的事,testing只有在事件发生的时候才能certificate),而是要向最不能理解的人展示最不显眼的expression如果它有未定义的或实现定义的行为,则在不同的机器上中断。 。 为了达到这个目的,我想问你: 这个想法如何改进? 哪些testing是好的,他们应该是什么样子? 你会在可以接触到的平台上运行testing并发布结果,以便我们得到平台数据库,它们有何不同以及为什么允许这种差异? 以下是testing玩具的当前版本: #include <stdio.h> #include <limits.h> #include <stdlib.h> #include <stddef.h> int count=0; int total=0; void expect(const char *info, const char *expr) { printf("..%s\n but '%s' is false.\n",info,expr); fflush(stdout); count++; } #define EXPECT(INFO,EXPR) if (total++,!(EXPR)) expect(INFO,#EXPR) /* stack check..How can I do this […]