例如,我有两个线程,t1和t2.我想等待t1 或 t2完成.这可能吗?
如果我有一系列线程,比如说,a std::vector<std::thread>,我该怎么做?
我想用它execvp来创建一个子进程并对其进行 seccomp (只给它读写权限,没有open)。为了实现这一目标,我必须调用函数的Seccomp之前 execvp(也称open),因此我应该给自己execvp和open许可。但这也意味着我给了由此execvp类权限打开的子进程。有没有办法阻止子open进程调用(例如,在调用 seccomp 之前将其加载到内存中)?
#include <iostream>
#include <vector>
#include <seccomp.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
using namespace std;
int main()
{
cerr << "Starting..." << endl;
scmp_filter_ctx ctx;
ctx = seccomp_init(SCMP_ACT_KILL); // default action: kill
seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(rt_sigreturn), 0);
seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(exit), 0);
seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(read), 0);
seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(write), 0);
seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(brk), 0);
seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(mmap), 0); …Run Code Online (Sandbox Code Playgroud) 我已经创建了一个用户,授予了您在 SQL Developer 中可以看到的所有权限,除了 sysdba 并以新用户身份登录,但我仍然无法创建其他用户。
这是我到目前为止所做的:
以本地 sysdba 身份登录;
跑:
CREATE USER USERA IDENTIFIED BY "PWDpwd123" DEFAULT TABLESPACE TBS1
TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK;
Run Code Online (Sandbox Code Playgroud)将您在 SQL Developer 中可以看到的所有权限和角色授予 USERA;
以用户身份登录;
跑:
CREATE USER USERB IDENTIFIED BY "pwd321" DEFAULT TABLESPACE TBS2
TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK;
Run Code Online (Sandbox Code Playgroud)然后我得到一个ORA-01031 ERROR. 怎么了?非常感谢您的帮助!