我正在编写一个简单的shell作为OS课程分配,我需要在PATH中搜索找到用户输入的程序,一旦找到正确的目录,我malloc一块内存就足以保存目录名加上程序名,我将它作为execv()的第一个参数传递给我.
我可以静态分配100个字符左右,但有限制让我觉得不舒服.所以当execv()执行时,堆清理了还是那段内存丢失了?
这可能不是很多记忆,但我只是好奇.
基本上,我想要一个函数来返回多态函数,如下所示:
有趣的 foo () = fn x => x
因此 foo 函数接受一个 unit 类型的值并返回一个多态恒等函数,编译器对此感到满意,它给了我:
val foo = fn : 单位 -> 'a -> 'a
但是一旦我实际调用 foo 函数,返回值就不是我期望的了
val it = fn : ?.X1 -> ?.X2
由于它所说的价值限制而无法概括,有什么帮助吗?提前致谢