我有简单的C程序,它使用fork()和execl()执行应用程序.如果execl()无法运行应用程序,那么我必须在父进程中调用一个函数并退出子进程.如果execl()成功运行应用程序,那么我已从父进程显示成功日志.因此,父进程应该等待子进程的execl()调用(只是调用,直到应用程序执行结束),获取有关其状态的一些信息,然后做出决策并继续自己的执行.这是我的代码.
int main()
{
int iExecRetVal, pid;
pid = fork();
if (pid == -1)
{
}
else if (pid > 0)
{
}
else
{
iExecRetVal = execl("./flute-static", "./flute-static", "-send", "-a192.168.190.1/6666", "JFlute.1.2.tar.gz", NULL);
if (iExecRetVal == -1)
{
/*execl() failed, need some error handling in the parent process*/
}
_exit(0);
}
/*Parent's normal execution*/
}
int HandleSuccessFromParent()
{
/*Should be called when exec call was successful*/
}
int HandleFailureFromParent()
{
/*Should be called when exec call was NOT successful*/
} …Run Code Online (Sandbox Code Playgroud) 不知何故,我在 /home/username 中的 .viminfo 文件已损坏。因此, ls -al 命令仅为 .viminfo 文件提供此输出
-?????????? ? ? ? ? ? .viminfo
Run Code Online (Sandbox Code Playgroud)
因此,当以“用户名”用户身份打开时,vim 编辑器无法写入此文件。我已经尝试了很多来修复它,但失败了。谁能帮帮我吗?
提前致谢。