C++ C+中的输出顺序错误+;

C++ C+中的输出顺序错误+;,c++,C++,我正在写一个解除监控程序。它工作正常,但不会在所提到的文件中产生任何输出。我写的脱名字程序正确吗?另外,这个程序以相反的顺序产生输出。有人能解释为什么吗 输出: Closing File descriptors Child Created.Exiting Parent 节目: int main(void) { pid_t pid, sid; int i=0; pid = fork(); if (pid < 0) { exit(EX

我正在写一个解除监控程序。它工作正常,但不会在所提到的文件中产生任何输出。我写的脱名字程序正确吗?另外,这个程序以相反的顺序产生输出。有人能解释为什么吗

输出:

Closing File descriptors
Child Created.Exiting Parent
节目:

int main(void)
{

    pid_t pid, sid;
    int i=0;
    pid = fork();
    if (pid < 0) {
            exit(EXIT_FAILURE);
    }
    if (pid > 0)
    {
            cout<<"Child Created.Exiting Parent\n";
            exit(EXIT_SUCCESS);
    }
    umask(0);
    sid = setsid();
    if (sid < 0)
    {
            exit(EXIT_FAILURE);
    }
    if ((chdir("/home/csgrad/suryakum/checking")) < 0)
    {
          cout<<"Directory not changed\n";
          exit(EXIT_FAILURE);
    }
    cout<<"Closing File descriptors\n";
    close(STDIN_FILENO);
    close(STDOUT_FILENO);
    close(STDERR_FILENO);
    while (1)
    {
            i++;
            ofstream outputFile("program3data.txt");
            outputFile<< "Run "<<i<<"\n";
            sleep(30); /* wait 30 seconds */
    }
    exit(EXIT_SUCCESS);
}
int main(无效)
{
pid_t pid,sid;
int i=0;
pid=fork();
if(pid<0){
退出(退出失败);
}
如果(pid>0)
{

cout流输出文件(“program3data.txt”);
声明应该出现在
之外,而

此外,该程序以相反的顺序生成输出


顺序是不确定的,在
fork()
之后并行执行。

流输出文件(“program3data.txt”);
声明应该在
之外执行,而

此外,该程序以相反的顺序生成输出


顺序是不确定的,在
fork()
之后并行执行。

在文件处理中,您缺少的一个基本内容是,每当我们打开一个流写入文件时,我们必须关闭该流。 写入文件后添加以下行

outputFile.close();

在文件处理中,您这里缺少的一个基本内容是,每当我们打开一个流来写入文件时,我们必须关闭该流。 写入文件后添加以下行

outputFile.close();

创建了文件program3data.txt,但其中没有任何内容。由于两个进程之间没有协调,因此输出顺序是不确定的。您可能希望在流输出文件(“program3data.txt”)中放置以下行:C不存在<代码> cOUT/COD>。这应该是C++的标记,因为它不是“代码> C<代码”。你必须关闭输出文件来获得输出到它的输出。如果你想“尾随”它,那么你需要刷新它的文件程序3DATA。这两个进程之间的协调。大概你想把这一行放在:OfSturnOutPoFfile(“程序3DATA,TXT”);在循环之外,C没有<代码> CUT。这只应该被标记为C++,因为它不是“代码> C<代码”。你必须关闭输出文件来获得输出到它的输出。如果你想“尾随”它,那么你需要刷新它。