如何在不丢失输出的情况下杀死/停止终端中正在运行的进程?

How to kill/stop a running process in a terminal without losing its output?

本文关键字:终端 进程 运行 输出 情况下      更新时间:2023-10-16

我尝试在终端中运行一个简单的 c++ 代码,并尝试将其输出存储在输出中.txt。

法典-

#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
while(1)
{
cin>>n;
cout<<n;
}
return 0;
}

使用终端命令:

g++ code.cpp
./a.out > output.txt

和输入:

1 
2
3
4
5

但是当我通过 Ctrl+C 终止程序时,输出.txt为空。 提前感谢您的帮助。

对我来说,即使它按您的预期工作。我想也许你的任务还没有结束!因此,请尝试两件事: 1-尝试在crtl + C之后关闭终端。 再次检查输出文件的内容 2-请给一个好名字而不是a.out(testfile.out(,然后在crtl + c之后尝试shell中的以下命令:

sudo ps -aux | grep testfile

查看您的进程是否已终止

我只是检查一下,我通过 Ctrl+C 终止了程序,输出完美地存储在输出.txt文件中。

但是,如果您不确定问题,可以使用以下方法:

#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
while(n!=-1){
cin>>n;
if(n!=-1)
cout<<n<<endl;
}
return 0;
}

输入 -1 终止程序。 :)