小编tom*_*tom的帖子

"fork()"之后的printf异常

操作系统:Linux,语言:纯C

我正在学习一般的C编程,以及在特殊情况下在UNIX下进行C编程.

printf()在使用fork()呼叫后,我发现了一个奇怪的(对我来说)函数的行为.

#include <stdio.h>
#include <system.h>

int main()
{
    int pid;
    printf( "Hello, my pid is %d", getpid() );

    pid = fork();
    if( pid == 0 )
    {
            printf( "\nI was forked! :D" );
            sleep( 3 );
    }
    else
    {
            waitpid( pid, NULL, 0 );
            printf( "\n%d was forked!", pid );
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

产量

Hello, my pid is 1111
I was forked! :DHello, my pid is 1111
2222 was forked!
Run Code Online (Sandbox Code Playgroud)

为什么第二个"Hello"字符串出现在子输出中?

是的,这正是父母在开始时与父母一起打印的内容pid …

c unix linux printf fork

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

Git'致命:没有这样的参考:HEAD'

我的git存储库发生了一件奇怪的事情.当我尝试在tortoisegit窗口中提交某些内容时,我会收到项目中的所有文件.我不能回复他们,当我从服务器获取我收到fatal: No such ref: HEADfatal: Cannot lock the ref 'HEAD'.我所有的本地分支都不见了.有什么方法可以解决这个问题吗?

这不是第一次提交或其他什么.这件事突然发生了.

编辑:

git branch -a 说: Failed to resolve HEAD as a valid ref

git status 打印标记为新文件的所有项目文件.

我改变了存储库文件夹名称一段时间,当我更改它时,事情是不正确的.

git tortoisegit

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

如何使用bcrypt将纯文本密码与散列密码进行比较?

我想用bcrypt哈希密码,然后验证提供的密码是否正确.

散列密码很简单:

import bcrypt

password = u'foobar'
password_hashed = bcrypt.hashpw(password, bcrypt.gensalt())

# then store password_hashed in a database
Run Code Online (Sandbox Code Playgroud)

如何将纯文本密码与存储的哈希进行比较?

python bcrypt

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

我们为什么不在main中使用(void)?

人们用 void main() /*empty parens ()*/

我被教过要写 void main(void)

任何想法有什么区别?

c

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

Google Cloud Vertex AI 与 Golang:rpc 错误:代码 = 未实现的 desc = 从服务器收到的意外 HTTP 状态代码:404(未找到)

我在端点上部署了 Vertex AI 模型,并希望通过 Golang 中的应用程序进行一些预测。

为此,我创建受此示例启发的代码: https: //cloud.google.com/go/docs/reference/cloud.google.com/go/aiplatform/latest/apiv1 ?hl=en

const file = "MY_BASE64_IMAGE"

func main() {

    ctx := context.Background()

    c, err := aiplatform.NewPredictionClient(cox)
    if err != nil {
        log.Printf("QueryVertex NewPredictionClient - Err:%s", err)
    }
    defer c.Close()

    parameters, err := structpb.NewValue(map[string]interface{}{
        "confidenceThreshold": 0.2,
        "maxPredictions":      5,
    })
    if err != nil {
        log.Printf("QueryVertex structpb.NewValue parameters - Err:%s", err)
    }

    instance, err := structpb.NewValue(map[string]interface{}{
        "content": file,
    })
    if err != nil {
        log.Printf("QueryVertex structpb.NewValue instance - Err:%s", err)
    }

    reqP := &aiplatformpb.PredictRequest{ …
Run Code Online (Sandbox Code Playgroud)

go gcloud grpc google-ai-platform google-cloud-vertex-ai

7
推荐指数
1
解决办法
1981
查看次数

使用Python自动更新SSH配置文件的优选方法?

我正在使用Fabric自动化我的一些工作流程,其中大部分涉及操纵EC2实例.

我正在寻找一种方法来保持我的.ssh/config文件是最新的,因为我经常启动并关闭EC2实例,如果我可以轻松地调试它们以进行调试等,这对我很有帮助.

我的SSH配置文件中的条目如下所示

Host ins_id
Hostname xxxxxxxx.com
User ubuntu
IdentityFile ~/.ssh/kp.pem
Run Code Online (Sandbox Code Playgroud)

目前,我正在做类似以下的事情(利用Fabricboto),坦率地说这是一种垃圾方法:

def my_cool_spin_up_function(self):
    . . .
    . . .
    ssh_conf = os.path.join(homedir, '.ssh/config')
    ssh_info = '\n'.join(['Host %s'         % name,
                          'Hostname %s'     % ins.dns_name,
                          'User %s'         % env.user,
                          'IdentityFile %s' % kp_loc,
                          '\n'])
    w_com = 'echo %s | cat - %s | tee %s > /dev/null' % (ssh_info, ssh_conf, ssh_conf)
    local(w_com)
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,这只会在每次调用时都保留在我的配置文件之前,这很好,因为SSH在配置中为每个主机获取第一部分,但这意味着文件会逐渐增加...

我想知道是否有任何Python库允许将其.ssh/config视为更多的配置文件,其相关部分可以随时更新.例如,如果您可以简单地将其.ssh/config视为字典并抽象出文件读/写,那将是非常棒的...

谢谢你的任何建议!

python ssh configuration amazon-ec2 fabric

6
推荐指数
1
解决办法
2835
查看次数

JRE 不使用可运行 jar 的清单文件指定的类路径

第一次发帖,对于我的格式不佳深表歉意。我有一个在eclipse中开发的java程序。我将程序导出为 jar (myJar.jar),然后将程序所依赖的所有外部 jar 放入名为lib的文件夹中,该文件夹与 myJar.jar 位于同一位置。为了设置我的类路径,我有一个具有以下格式的清单文件:

Main-Class: exe.myMain
Class-Path: lib/jar_1.jar lib/jar_2.jar ... lib/jar_n.jar
Manifest-Version: 1.0
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用“java -jar myJar.jar”运行程序时, lib中的 jar 中的类不会被加载(我收到 ClassNotFoundException)。我在程序中使用以下代码来打印类路径:

ClassLoader cl = ClassLoader.getSystemClassLoader();
URL[] urls = ((URLClassLoader)cl).getURLs();
for(URL url:urls){
    System.out.println(url.getFile());
}
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,类路径只是“myJar.jar”。

我有两个问题:

1.) 上面的代码实际上在运行时为我提供了 JRE 的类路径,还是只是为我提供了主类的地址?

2.) 鉴于上面的代码确实在运行时为我提供了 JRE 的类路径,我做错了什么吗?

请随时询问更多信息,我很乐意提供您所需的信息。

java manifest

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

如何处理未跟踪的文件并提高 git status 性能

我目前在 Mac 上。

\n

在 Git 2.35.1 中,当我克隆存储库时,需要 7 秒来枚举未跟踪的文件,而当我这样做时time git status,大约需要 2 秒。\n而且,当我签出到其他分支时,大约需要 15 秒,而当我签出时,大约需要 15 秒。返回我的主仓库git status花了 15 秒(不应该花这么多时间)。

\n

(2.35.1) 中的解决方法是:\n我设置core.untrackedCache=trueGIT_FORCE_UNTRACKED_CACHE=1\n这有助于更新未跟踪的缓存并提高git status大多数 Stack Overflow 答案中提到的性能(大约 4 秒)。\n stack-溢出问题

\n

但现在在 Git 2.36.1 中,这种解决方法似乎不起作用。所有分支大约需要 20 秒。

\n

代码中可能的更改:

\n

在 Git 2.35.1 中,代码如下dir.c

\n
if (dir->untracked) {\n        static int force_untracked_cache = -1;\n\n        if (force_untracked_cache < 0)\n            force_untracked_cache =\n                git_env_bool("GIT_FORCE_UNTRACKED_CACHE", 0);\n        if (force_untracked_cache &&\n            dir->untracked …
Run Code Online (Sandbox Code Playgroud)

git git-config

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

在 Ansible 中执行带参数的 bash 脚本

我是 Ansible 的新手。我有一个 bash 脚本,它有三个要传递的参数。我必须从 Ansible 在远程服务器上运行这个 bash 脚本。

基本上,我想在执行 Ansible 命令时将主机名、持续时间和注释字段声明为参数。我不想编辑文件,因为我是从 Slack 频道编辑的。

- hosts: nagiosserver

  tasks:
   - name: Executing a script
     command: sh /home/aravind/downtime.sh {hostname} {duration} {comments}
Run Code Online (Sandbox Code Playgroud)

bash ansible slack

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