小编hax*_*ode的帖子

为什么结构不能拥有与自身类型相同的成员?

我一直在理解这个结构发生了什么(来自C for ProgrammersDeitel的书).

该书说:"结构不能包含自身的实例.例如,struct employee不能在定义中声明类型的变量struct employee.但是,可以包含指向struct employee的指针."

然后给出以下示例:

struct employee2 {
   char firstName[ 20 ];

   char lastName[ 20 ];

   unsigned int age;

   struct employee2 *ePtr;
};
Run Code Online (Sandbox Code Playgroud)

我不明白这是做什么的,我不明白struct employee没有2 的参考.

我怎么struct employee2 *ePtr知道struct employee或者我不在这里?

c struct

5
推荐指数
2
解决办法
4099
查看次数

如何在 ssh 中显示换行符

我正在尝试执行以下操作:

#!/bin/sh
ssh user@server "echo \"Test \n for newline\""
Run Code Online (Sandbox Code Playgroud)

这显示:

test \n for newline
Run Code Online (Sandbox Code Playgroud)

如何让 shell 将其解释\n为实际的换行符?

linux shell newline sh

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

如何在PowerShell中捕获异常?

如果我有一段抛出异常的代码,我会得到一条错误消息,但我不知道如何正确捕获(或确定)抛出的异常.通常我会抓住System.Exception哪个是个坏主意.

这是一个例子......我正在尝试在不存在的驱动器上创建一个文件夹:

PS <dir> .\myScript.ps1 z:\test
mkdir : Cannot find drive. A drive with the name 'z' does not exist.
At <dir>myScript.ps1:218 char:7
+       mkdir $args[0] 1> $null
+       ~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (z:String) [New-Item], DriveNotFoundExc
   eption
    + FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.NewItemComm
   and
Run Code Online (Sandbox Code Playgroud)

我试过捕获System.DriveNotFoundException,但重新运行我的脚本仍然会产生未捕获的异常.

有效处理任何类型的例外是否有任何提示?

windows powershell exception

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

在powershell中创建一个包含字符串和列表的哈希图?

在 powershell 中,如何创建一个哈希图,其中包含一个字符串作为键和一个字符串列表作为值?

例如,在 Java 中,可以执行以下操作:

Map<String, List<String> myMap = new HashMap<String, List<String>();
Run Code Online (Sandbox Code Playgroud)

powershell 是否包含此功能?

我试过了:

$myMap = @{ [string], New-Object Collections.Generic.List[string] } 
Run Code Online (Sandbox Code Playgroud)

但这没有用。

windows powershell hashmap

5
推荐指数
2
解决办法
7032
查看次数

如何在switch语句中匹配正则表达式?

我正在尝试将令牌与函数中的switch语句进行匹配,其中一个令牌需要能够识别下面代码中正则表达式定义的任何字符串或任何数字.

基本上,是否可以针对像这样的情况定义正则表达式 case "[a-z]+":

显然我现在拥有它的方式,除非我通过STRINGNUMBER作为参数,否则我的模式是不可达的.

public Token analyzeToken(String token) {
      Token tokenType = null;     

      switch (token) {

         case "STRING":
            Pattern p = Pattern.compile("[a-z]+");
            Matcher m = p.matcher(token);
            if(m.matches()) {
               tokenType = Token.STRING;
               break;
            }
         case "NUMBER":
            Pattern p = Pattern.compile("[0-9]+");
            Matcher m = p.matcher(token);
            if(m.matches()) {
               tokenType = Token.NUMBER;
               break;

         case "(":
            tokenType = Token.LEFT_PAREN;
            break;
         case ")":
            tokenType = Token.RIGHT_PAREN;
            break;
         case ".":
            tokenType = Token.PERIOD;
            break;
         case ":":
            tokenType = …
Run Code Online (Sandbox Code Playgroud)

java regex switch-statement

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

比较两个java映射的键和值

我还是比较新的Java,我发现自己仍然试图正确编写这段代码,我认为应该更简单一些.

我有两个由同一个对象的两个不同实例组成的地图.键是对象,值是对象.

有两个实例,因为我试图确定一个实例中的键是否与另一个实例中的键不同.我正在尝试专门定位新密钥或丢失密钥,然后比较两个映射中存在的密钥的值.

下面的示例代码只是为了帮助可视化我正在尝试做的事情(希望它不会更令人困惑!)

以下示例的目标应该告诉我缺少键"C"并且有一个新键("D")然后它应该最终比较两个映射中键的值.

主要问题是,无论如何要在一个循环中执行此操作?主要是因为我的实际代码将触摸文件系统中的地图中的值,我正在尝试最小化它必须触摸磁盘的时间

Map<objA, objB> mapA = new HashMap<objA, objB>();
mapA.put("A", "1");
mapA.put("B", "2");
mapA.put("C", "3");

Map<objA, objB> mapB = new HashMap<objA, objB>();
mapB.put("A", "1");
mapB.put("D", "4");

// Check if something is missing from mapB
for(Map.Entry<objA, objB> entryMapA:mapA.entrySet())
{
    if(!mapB.containsKey(entryMapA.getKey())
        {
            System.out.println(entryMapA.getKey() + " is missing");
        }
}

// Check if something is new is in mapB
for(Map.Entry<objA, objB> entryMapB:mapB.entrySet())
{
    if(!mapA.containsKey(entryMapB.getKey())
    {  
        System.out.println(entryMapB.getKey() + " is new");
    }
}
Run Code Online (Sandbox Code Playgroud)

java comparison map

4
推荐指数
1
解决办法
3万
查看次数

将shell变量传递给ssh

我阅读了关于在远程ssh中传递变量的其他帖子,但这些解决方案对我来说似乎不起作用.

这是我的情况:我在我的shell脚本(在本地机器上)填充变量的值,然后通过ssh 在另一个系统上使用.我理解为什么这不起作用,但我想找到一种方法通过ssh在另一个系统的本地shell中使用值.

BUILD_SERVER="my_server"
ANOTHER_SERVER="my_server2"
ssh $USERNAME@$BUILD_SERVER << 'ENDSSH'

echo "$BUILD_SERVER"
echo "$ANOTHER_SERVER"

ENDSSH
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,这些变量为null.有没有办法将值传递给ssh?

variables ssh bash shell

4
推荐指数
1
解决办法
2938
查看次数

我可以使用现有的SSH连接并通过该隧道执行SCP,而无需重新进行身份验证吗?

我想知道我是否已经建立了SSH隧道,并且想将每项任务的ssh服务器重新身份验证最小化,是否有一种方法可以使用现有隧道通过本地SCP来从SSH服务器中提取文件机器没有重新认证?

我试图避免使用ssh键,我只是想尽量减少需要为bash脚本输入密码的次数。

ssh -t user@build_server "*creates a build file...*"
Run Code Online (Sandbox Code Playgroud)

该命令完成后,build_server上将存在一个文件。因此,如果上述隧道仍处于打开状态,是否可以在我的本地计算机上使用该隧道来运行SCP并将文件带到本地计算机桌面?

ssh bash scp sh

4
推荐指数
1
解决办法
4329
查看次数

这个while循环如何知道何时失败?

我正在阅读有关如何编程网络套接字并运行这段代码的内容:

try {     
   while (true) {   // This is the line in question
     int i = in.read(  );
     if (i == -1) break;
     System.out.write(i);
   }
 }
 catch (SocketException e) {
   // output thread closed the socket
 }
 catch (IOException e) {
   System.err.println(e);
 }
Run Code Online (Sandbox Code Playgroud)

第二行如何知道何时失败?换句话说,while(true)循环如何工作?我想我不明白'虽然这是真的吗?'

java while-loop

4
推荐指数
1
解决办法
107
查看次数

如何以编程方式发送空白密码?

我有一个shell脚本来检查一个subversion repo.连接要求输入密码(因为密码为空,我知道这是一个不必要的层),但是如何向subversion发送空白密码呢?

#!/bin/sh

svn co svn://server/repo ~/Desktop/data
Run Code Online (Sandbox Code Playgroud)

然后这会向终端发送密码提示,有没有办法在我的脚本中用空密码自动响应?

linux svn bash

3
推荐指数
1
解决办法
196
查看次数