sxu*_*sxu 8 c linux operating-system
我正在编写一个简单的shell作为OS课程分配,我需要在PATH中搜索找到用户输入的程序,一旦找到正确的目录,我malloc一块内存就足以保存目录名加上程序名,我将它作为execv()的第一个参数传递给我.
我可以静态分配100个字符左右,但有限制让我觉得不舒服.所以当execv()执行时,堆清理了还是那段内存丢失了?
这可能不是很多记忆,但我只是好奇.
当你exec(),整个过程是(a)结束,所以所有资源,包括动态内存和一些fd如下,由操作系统回收,并且(b)替换:代码,数据,线程,......
重新文件描述符,来自"man execve":
在调用过程映像中打开的文件描述符在新过程映像中保持打开状态,但设置了close-on-exec标志的文件描述符除外(请参阅close(2)和fcntl(2)).保持打开的描述符不受execve()的影响.
| 归档时间: |
|
| 查看次数: |
1806 次 |
| 最近记录: |