我已经看到至少三种不同的方法来设置sigaltstack()的替代堆栈。我想知道哪一种是最好的方法:
\n方法#1
\nstack_t sigstk;\nsigstk.ss_size = 0;\nsigstk.ss_flags = 0;\nsigstk.ss_sp = mmap (NULL, SIGSTKSZ, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);\nif (sigstk.ss_sp != MAP_FAILED) {\n sigstk.ss_size = SIGSTKSZ;\n if (sigaltstack (&sigstk, 0) < 0) {\n sigstk.ss_size = 0;\n printf ("sigaltstack errno=%d\\n", errno);\n }\n} else {\n printf ("malloc (SIGSTKSZ) failed!\\n");\n}\nRun Code Online (Sandbox Code Playgroud)\n方法#2\n(我们已经使用这个有一段时间了,但是这里分配的内存显示在泄漏检测(leaks命令)中)
stack_t sigstk;\nsigstk.ss_size = 0;\nsigstk.ss_flags = 0;\nsigstk.ss_sp = malloc (SIGSTKSZ);\nif (sigstk.ss_sp != NULL) {\n sigstk.ss_size = SIGSTKSZ;\n if (sigaltstack (&sigstk, 0) < 0) {\n …Run Code Online (Sandbox Code Playgroud) 操作系统 X、10.8.x
我们使用 launchd plist 文件(在 /Library/LaunchDaemons 中)在计算机启动时启动服务器应用程序。如果要启动的应用程序不在系统卷上,而是在另一个内部卷上,则该磁盘并不总是及时安装,并且作业每 10 秒重新生成一次。
有什么方法可以等待该文件系统对象变得可用吗?(或许 ?)
谢谢,阿科斯