是否可以将操作系统置于最大值?我有一些代码需要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))$
答案 0 :(得分:2)
查看build_info
的输出,特别是字段host
(即foo@host
其中foo : build_info()
)。有关详细信息,请参阅? build_info
。
在我的(Linux)系统上,我得到:x86_64-unknown-linux-gnu
我认为在MS Windows上你会得到一个包含windows
或至少win
或win32
的字符串}。
可能还有其他方法可以找出系统类型,因此请告诉我这是否对您有用。还有一个浮动的全局变量可能告诉路径分隔符;我不得不寻找那个。
答案 1 :(得分:1)
如果你不喜欢编写一些Lisp代码,另一种方法是使用Common Lisp中的文件和目录函数,它们比Maxima更广泛。请参阅Common Lisp Hyperspec中的the section on filenames。我认为MERGE-PATHNAMES和/或MAKE-PATHNAME可能是相关的。