以最大值获取操作系统

时间:2017-09-18 13:23:56

标签: maxima

是否可以将操作系统置于最大值?我有一些代码需要unix /或windows \作为路径名。如何找出运行代码的操作系统?

为了给出一些上下文,我有以下代码:

windows: false$
divider: "/"$
if (windows) then divider: "\\"$
initfile: concat(maxima_userdir, divider, "maxima-init.mac");
load(operatingsystem)$
dir: getcurrentdirectory();
if (substring(dir, slength(dir)) # divider) then dir: concat(dir, divider)$
repo: concat(dir, "$$$.mac")$
live: concat(dir, "live_packages", divider, "$$$.mac")$
with_stdout(initfile, printf(true, ""))$
with_stdout(initfile, printf(true, concat("file_search_maxima: append (file_search_maxima, [
    ~s,
    ~s 
]);"), repo, live))$

2 个答案:

答案 0 :(得分:2)

查看build_info的输出,特别是字段host(即foo@host其中foo : build_info())。有关详细信息,请参阅? build_info

在我的(Linux)系统上,我得到:x86_64-unknown-linux-gnu我认为在MS Windows上你会得到一个包含windows或至少winwin32的字符串}。

可能还有其他方法可以找出系统类型,因此请告诉我这是否对您有用。还有一个浮动的全局变量可能告诉路径分隔符;我不得不寻找那个。

答案 1 :(得分:1)

如果你不喜欢编写一些Lisp代码,另一种方法是使用Common Lisp中的文件和目录函数,它们比Maxima更广泛。请参阅Common Lisp Hyperspec中的the section on filenames。我认为MERGE-PATHNAMES和/或MAKE-PATHNAME可能是相关的。