执行命令
execution = subprocess.run(to_run, input=test, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
encoding="utf-8", timeout=timelimit)
按照这个顺序
['g++', '/Users/islamshaykhiev/Downloads/main.cpp', '-o', '3solve.out']
['chmod', '+x', '3solve.out']
['./', '3solve.out']
最后一个命令期间发生错误
PermissionError: [Errno 13] Permission denied: './'
问题是什么?
main.cpp 代码本身
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define all(v) v.begin(), v.end()
#define trace(x) cout << #x "=" << x << endl
#define int128 __int128
#define int long long
const int mod = 1e9 + 7;
const int maxn = 5e5 + 10;
signed main() {
cin.tie();
ios_base::sync_with_stdio(false);
int x1, y1, r1, d1, x2, y2, r2, d2;
cin >> x1 >> y1 >> r1 >> d1 >> x2 >> y2 >> r2 >> d2;
double dist = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)) - r1 - r2;
cout << dist / (d1 + d2) << "\n";
}
每个命令由要启动的程序的名称和传递给它的命令行参数组成。作为程序,您可以指定包含行的可执行文件和脚本
#! путь/до/интерпретатора
。因此,您正在尝试运行一个
./
不存在的程序(这是指向当前文件夹的链接)。相反,您必须立即指定您编译的名称:如果您一开始就忘记
./
它,操作系统将开始在系统文件夹中查找该程序。