小编pou*_*def的帖子

如何使管道与Runtime.exec()一起工作?

请考虑以下代码:

String commandf = "ls /etc | grep release";

try {

    // Execute the command and wait for it to complete
    Process child = Runtime.getRuntime().exec(commandf);
    child.waitFor();

    // Print the first 16 bytes of its output
    InputStream i = child.getInputStream();
    byte[] b = new byte[16];
    i.read(b, 0, b.length); 
    System.out.println(new String(b));

} catch (IOException e) {
    e.printStackTrace();
    System.exit(-1);
}
Run Code Online (Sandbox Code Playgroud)

该程序的输出是:

/etc:
adduser.co
Run Code Online (Sandbox Code Playgroud)

当我从shell运行时,它当然按预期工作:

poundifdef@parker:~/rabbit_test$ ls /etc | grep release
lsb-release
Run Code Online (Sandbox Code Playgroud)

互联网告诉我,由于管道行为不是跨平台的事实,在Java工厂生产Java的杰出人才无法保证管道工作.

我怎样才能做到这一点?

我不会做所有使用Java构建,而不是我的解析grepsed,因为如果我想改变的语言,我将被迫在语言,这完全是一个没有去重新写我的解析代码.

在调用shell命令时如何让Java进行管道和重定向?

java exec runtime.exec

101
推荐指数
3
解决办法
6万
查看次数

如何为整个目录创建补丁以进行更新?

我知道有这个已经几个线程,但没有一个充分说明究竟如何执行初始DIFF创建补丁文件,那么该如何应用这个补丁初始目录进行更新.

就我而言,有一个文件目录,任何人都可以从网上下载.我已经获取了该目录并对其进行了更改,并希望创建一个补丁文件,以便其他人可以将其应用于下载的目录,以准确再现我在修改后的目录中的内容.

救命?关于如何应用我的补丁,我需要告诉对方什么?

diff patch

67
推荐指数
2
解决办法
6万
查看次数

即使安装了命令行工具,xcode-select 也无法找到 clang

当我尝试运行该clang命令时,出现以下错误:

\n
xcode-select: Failed to locate \'clang\', requesting installation of command line developer tools.\n
Run Code Online (Sandbox Code Playgroud)\n

然后我收到这个弹出窗口:

\n

clang 安装弹出窗口

\n

然而,无论我点击“安装”多少次(经历 15 分钟的安装过程),我仍然会遇到相同的错误。

\n

我也尝试过运行xcode-select --install,但是出现以下错误:

\n
xcode-select: error: command line tools are already installed, use "Software Update" to install updates\n
Run Code Online (Sandbox Code Playgroud)\n

我也尝试过从这里手动安装。

\n

我使用的是运行 macOS Monterey 版本 12.5 的 M1 mac。

\n

它还会产生一个核心转储:

\n
2022-09-19 10:51:04.669 xcodebuild[1541:17443] [MT] DVTPlugInLoading: Failed to load code for plug-in com.apple.dt.IDESimulatorAvailability (/Applications/Xcode.app/Contents/PlugIns/IDESimulatorAvailability.ideplugin), error = Error Domain=NSCocoaErrorDomain Code=3588 "dlopen(/Applications/Xcode.app/Contents/PlugIns/IDESimulatorAvailability.ideplugin/Contents/MacOS/IDESimulatorAvailability, 0x0109): Symbol …
Run Code Online (Sandbox Code Playgroud)

xcode xcode-command-line-tools

63
推荐指数
2
解决办法
1万
查看次数

如何控制进程运行的核心?

我可以理解如何编写一个使用多个进程或线程的程序:fork()一个新进程并使用IPC,或创建多个线程并使用这些通信机制.

我也理解上下文切换.也就是说,只有一次CPU,操作系统为每个进程安排时间(并且有大量的调度算法),从而我们实现了同时运行多个进程.

现在我们拥有多核处理器(或多处理器计算机),我们可以在两个独立的核心上同时运行两个进程.

我的问题是关于最后一个场景:内核如何控制进程运行的核心?哪些系统调用(在Linux,甚至是Windows中)在特定核心上安排进程?

我问的原因是:我正在为学校开展一个项目,我们将在那里探索最近的计算主题 - 我选择了多核架构.关于如何在这种环境中编程(如何监视死锁或竞争条件)似乎有很多材料,但在控制各个核心本身方面却没有太多.我希望能够编写一些演示程序并提供一些汇编指令或C代码,以实现"看,我在第二个内核上运行无限循环,查看该特定内核的 CPU利用率峰值" .

任何代码示例?还是教程?

编辑:为了澄清 - 很多人都说这是操作系统的目的,应该让操作系统处理这个问题.我完全同意!但那时我所要求的(或试图感受到)是操作系统实际上做的事情.不是调度算法,而是"一旦选择了核心,必须执行哪些指令才能让核心开始获取指令?"

multicore intel instruction-set system-calls

57
推荐指数
4
解决办法
5万
查看次数

什么是停顿问题?

每当人们询问与编程有关的暂停问题时,人们会回答:"如果你只是添加一个循环,那么你就有了停止程序,因此无法自动完成任务 "

说得通.如果你的程序有一个无限循环,那么当你的程序运行时,你无法知道程序是否仍在处理输入,或者它是否只是无限循环.

但其中一些似乎反直觉.如果我正在编写一个暂停问题求解器,它将源代码作为输入,那该怎么办?rascher@localhost$ ./haltingSolver source.c

如果我的代码(source.c)看起来像这样:

for (;;) {  /* infinite loop */  }
Run Code Online (Sandbox Code Playgroud)

看起来我的程序看起来很容易."查看循环,看看条件.如果条件只是基于文字而没有变量,那么你总是知道循环的结果.如果有变量(例如while(x <10)),看看是否这些变量是永远修改的.如果没有,那么你总是知道循环的结果."

当然,这些检查不会是微不足道的(计算指针算术等),但这似乎不可能.例如:

int x = 0
while (x < 10) {}
Run Code Online (Sandbox Code Playgroud)

可以检测到.以及 - 尽管不是轻微的:

int x = 0
while (x < 10)
{
   x++;
   if (x == 10)
   {
      x = 0
   }
}
Run Code Online (Sandbox Code Playgroud)

那么用户输入呢?这就是踢球者,这就是让程序无法预测的原因.

int x = 0;
while (x < 10) 
{
   scanf("%d", &x); /* ignoring infinite scanf loop oddities */
}
Run Code Online (Sandbox Code Playgroud)

现在我的程序可以说:"如果用户输入10或更高,程序将停止.在所有其他输入,它将再次循环."

这意味着,即使有数百个输入,也应该能够列出程序停止的条件.实际上,当我编写程序时,我总是确保有人能够终止它!我并不是说由此产生的条件清单是微不足道的,但对我来说似乎并不可能.您可以从用户那里获取输入,使用它们来计算指针索引等等 - 但这只会增加条件的数量以确保程序终止,不会使它们无法枚举. …

computer-science halting-problem

52
推荐指数
8
解决办法
2万
查看次数

Git从别人的分叉合并

我在github上有一个存储库,其他人已经分叉并进行了更改.

我想要:

  1. 创建一个新分支
  2. 将他们的更改合并到我的分支中

我创建了新分支:

git commit -b my_new_branch
Run Code Online (Sandbox Code Playgroud)

如何将他们的代码合并到这个新分支?

这是我创建的分支:https://github.com/poundifdef/VirginMobileMinutesChecker/tree/widget_toast

这是我要合并的分支:https: //github.com/xbakesx/VirginMobileMinutesChecker

做这个的最好方式是什么?我尝试了"拉"但它不起作用.老实说,我不知道我在gitland做什么,所以如果有更好的方法来完成这个(除了我创建一个分支并尝试合并),那么我全都耳朵!

git github git-branch

49
推荐指数
1
解决办法
2万
查看次数

'&'在C++声明中做了什么?

我是一个C人,我正在尝试理解一些C++代码.我有以下函数声明:

int foo(const string &myname) {
  cout << "called foo for: " << myname << endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

函数签名与等效的C有何不同:

int foo(const char *myname)
Run Code Online (Sandbox Code Playgroud)

使用string *mynamevs 之间有区别string &myname吗?&用C++和*C表示指针有什么区别?

同理:

const string &GetMethodName() { ... }
Run Code Online (Sandbox Code Playgroud)

这是&做什么的?是否有一些网站解释了如何&在C vs C++中使用不同的方式?

c++ syntax operators

39
推荐指数
4
解决办法
8万
查看次数

在R,NULL与NA中分配矩阵的最佳方法是什么?

我正在编写R代码来创建一个方阵.所以我的方法是:

  1. 分配正确大小的矩阵
  2. 遍历矩阵的每个元素并用适当的值填充它

我的问题很简单:预先分配这个矩阵的最佳方法是什么?到目前为止,我有两种方式:

> x <- matrix(data=NA,nrow=3,ncol=3)
> x
     [,1] [,2] [,3]
[1,]   NA   NA   NA
[2,]   NA   NA   NA
[3,]   NA   NA   NA
Run Code Online (Sandbox Code Playgroud)

要么

> x <- list()
> length(x) <- 3^2
> dim(x) <- c(3,3)
> x
     [,1] [,2] [,3]
[1,] NULL NULL NULL
[2,] NULL NULL NULL
[3,] NULL NULL NULL
Run Code Online (Sandbox Code Playgroud)

据我所知,前者比后者更简洁.此外,前者用NA填充矩阵,而后者填充NULL.

这是"更好"的方法吗?在这种情况下,我将"更好"定义为"更好的性能",因为这是统计计算,并且此操作将在大型数据集中进行.

虽然前者更简洁,但理解起来并不令人惊讶,所以我觉得这可能是两种方式.

另外,R中NA和NULL之间有什么区别??NA和?NULL告诉我"NA"的长度为"1",而NULL的长度为"0" - 但这里有更多吗?还是最佳做法?这将影响我用于创建矩阵的方法.

r matrix

33
推荐指数
1
解决办法
5万
查看次数

与有表现性失语症的人沟通的技术?

一位家庭成员几年前中风,现在有表现性失语症.她理解对她说的是对正在发生的事情的认知,但不能表达自己.她可以回答是/否问题(你想去购物吗?你在寻找你的耳环吗?)但她不能阅读(英语不是她的母语,她没有读过印地语几十年.)

我是这个家庭的技术专家,我打算想出一些东西来帮助我们沟通.这个想法是有一些图画书,她可以指出她想要的东西.

我的第一个问题:对于有表现性失语症的人,是否已经存在某种辅助技术?这些可以是硬件还是软件设备?

如果没有,那么这样的软件似乎并不难写.我最初的想法是有一个图片界面 - 可能按类别(食物,购物)分开 - 在那里她可以指向一张单独的图片来表明她需要什么.我们可以使用这样的软件轻松添加更多项目,我们可以有一个界面,她(或我们)可以"翻页".

这表明最好的解决方案是使用触摸屏而不是鼠标.训练她瞄准鼠标或在键盘上找到键是非常困难的.

我们正在考虑购买平板电脑并编写一些基本软件.但平板电脑价格昂贵且易碎 - 我不确定它是否能够在养老院遭受泄漏或被撞倒.

所以我的下一个问题是:我可以在哪种类似平板电脑的设备上进行编程?我对硬件一无所知,但如果有什么东西,我们可以特别订购它.这样一个项目的安全性和持久性是什么?我们可以在iPod或手机上做点什么,但我觉得这个界面太小了.

最后,这里有没有人有这种辅助技术的经验?在设计这样的系统时我可能没有预料到的事情?

编辑

我添加了一个(非常大的!)赏金.我有点想把这个问题提到人们可能有的任何建议,评论和经验.这是一个非常现实和重要的项目,因此,虽然我们将(正在制定)解决方案,但任何见解都会特别有用.

现在计划是在她的房间里安装一个屏幕.在看到她能够使用简单的原型后,我们要么教她使用轨迹球,要么使用触摸屏.然后软件类似于旧的"超级卡"套牌:

----------------------------------------------------------------
|   --------------          --------------                     |
|   |  Clothes   |          |    Food    |      ...            |       
|   --------------          --------------                     |
|                                                              |
|    Pic of item 1     Pic of item 2     Pic of item  3        |
|                                                              |
|                                                              |
|                                                              |
|                                                              |
|    Pic of item 4     Pic of item 5     Pic of item  6        |
|                                                              |
|                                                              |
|                                                              |
| …

touchscreen medical tablet assistive-technology

32
推荐指数
3
解决办法
3794
查看次数

R:从范围内的数据表中选择值

我在R中有一个数据表:

name    date
----    ----
John    1156649280
Adam    1255701960
...etc...
Run Code Online (Sandbox Code Playgroud)

我想得到日期在一个范围内的所有行.在SQL中,我可能会说SELECT * FROM mytable WHERE date > 5 AND date < 15

R中的等价物是什么,根据特定列中的值范围选择行?

r

32
推荐指数
3
解决办法
14万
查看次数