小编uzl*_*xxx的帖子

(char *)0 在 C 中意味着什么?

if ( fgets( line, sizeof(line), stdin ) == (char*) 0 )...
Run Code Online (Sandbox Code Playgroud)

我不明白这一行的作用,有人知道吗?

c syntax

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

关闭标准输出 (STDOUT) 对 printf 有何影响?

如果有人关闭进程\'STDOUT如果有人在其文件描述符表中

\n
close(STDOUT);\n
Run Code Online (Sandbox Code Playgroud)\n

然后立即打开一个文件进行读/写:

\n
int \xe2\x80\x8bfd = open(\xe2\x80\x8b"myFile"\xe2\x80\x8b, O_RDWR);\n
Run Code Online (Sandbox Code Playgroud)\n

然后使用printf

\n
int \xe2\x80\x8bfd = open(\xe2\x80\x8b"myFile"\xe2\x80\x8b, O_RDWR);\n
Run Code Online (Sandbox Code Playgroud)\n

我知道它不会出现在屏幕上,但是它会打印在文件中吗?如果没有,您是否必须使用fprintfwrite系统调用?

\n

unix linux operating-system stdout file

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

如何在Raku Perl 6中正确解压缩Git对象?

我有以下Python代码段:

import zlib

def object_read(repo, sha):
    path = repo + "/objects/" + sha[0:2] +  "/" + sha[2:]

    with open (path, "rb") as f:
        raw = zlib.decompress(f.read())
        return len(raw)

print(object-read(".git", "1372c654fd9bd85617f0f8b949f1405b0bd71ee9"))
Run Code Online (Sandbox Code Playgroud)

和它的P6同行之一:

#!/usr/bin/env perl6
use Compress::Zlib;

sub object-read( $repo, $sha ) {
    my $path = $repo ~ "/objects/" ~ $sha.substr(0, 2) ~ "/" ~
               $sha.substr(2, *);

    given slurp($path, :bin) -> $f {
        my $raw = uncompress($f).decode('utf8-c8'); # Probable error here?!
        return $raw.chars;
    }

}

put object-read(".git", "1372c654fd9bd85617f0f8b949f1405b0bd71ee9")
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它们时,它们使我得到的结果不一:

$ python bin.py …
Run Code Online (Sandbox Code Playgroud)

git perl6 raku

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

使用Iterable和Iterator角色实现可迭代的类

假设我们有以下组成角色的类Iterable

class Word-Char does Iterable {
    has @.words;

    method !pairize($item) {
        return $item => $item.chars;
    }

    method iterator( Word-Char:D: ) {
        @!words.map({self!pairize($_)}).rotor(1).iterator
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以Positional在对象构造期间将对象分配给变量,然后对该变量进行迭代:

my @words = Word-Char.new: words => <the sky is blue>;
.say for @words;
Run Code Online (Sandbox Code Playgroud)

输出:

(the => 3)
(sky => 3)
(is  => 2)
(blue => 4)
Run Code Online (Sandbox Code Playgroud)

但是,如果要传递对象该怎么办?我如何确保它仍然可迭代?:

my $w = Word-Char.new: words => <the sky is blue>;
sub f( $w ) {
    .say for $w
}
f($w);
Run Code Online (Sandbox Code Playgroud)

输出: …

iterator perl6 raku

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

julia-lang定义新运算符| =或|> =

a += 1 相当于 a = a + 1

我想拥有a |>= \xe2\x88\x9aa |= \xe2\x88\x9a相当于a = a |> \xe2\x88\x9a.我可以定义这些新的运算符吗?

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

如何存储run或shell返回的值?

假设我有这个脚本:

# prog.p6
my $info = run "uname";
Run Code Online (Sandbox Code Playgroud)

当我跑步时prog.p6,我得到:

$ perl6 prog.p6
Linux
Run Code Online (Sandbox Code Playgroud)

有没有办法存储返回值的字符串版本并阻止它输出到终端?

已经存在类似的问题,但它没有提供具体的答案.

perl6 raku

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

使用捕获的类型来键入类的属性

我已经按照 SO 问题如何在 Perl 6 中设置参数化类的答案中的 说明进行操作?. 但是,我遇到了一些软障碍。我正在尝试使用类型捕获键入内部类的属性并收到以下错误:

Died with X::TypeCheck::Assignment
  in submethod BUILDALL at ...
  in method insert at ...
  in block <unit> at ...
Run Code Online (Sandbox Code Playgroud)

在下面的示例中,我输入了 classBinaryNode$.item属性(with T),但这样做会导致上述错误:

class BinarySearchTree {
    my role BTSImpl[::T] {
        my class BinaryNode is rw {
            has T $.item; 
            has BinaryNode $.left;
            has BinaryNode $.right;
        }

        method create-node( T $x ) {
            BinaryNode.new(item => $x)
        }
    }

    method ^parameterize(Mu:U \this, Mu \T) {
        my $type := …
Run Code Online (Sandbox Code Playgroud)

metaprogramming parametric-polymorphism raku

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

使用 Node.JS 调用 AWSglue 的 lambda 函数没有 console.log 的原因是什么?

我正在尝试使用 lambda 函数和 node.js 启动 AWS 粘合作业。我可以很好地测试 lambda 函数,但在脚本运行完毕后似乎没有任何反应。我添加了一些 console.log 行,但在调用 SDK 方法来启动 AWS 粘合作业期间,没有任何 console.log 行记录任何内容(我正在检查 lambda 代码配置页面和 CloudWatch 上的输出) 。我在这里错过了什么吗?我使用浏览器内的“测试”按钮测试了以下内容。

var AWS = require('aws-sdk');
AWS.config.update({region: 'us-east-2'});

var glue = new AWS.Glue();

exports.handler = async (event) => {

    console.log("Hello!")
    var params = {
            JobName: 'ETL-store-inventory',
        };

    //Invoke job run
    glue.startJobRun(params, function(err, data) {
      if (err) console.log(err, err.stack); // an error occurred
      else     console.log(data);           // successful response
    });

    console.log("Done")
    
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    }; …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services node.js console.log aws-lambda aws-glue

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

线程可以存在于进程之外吗?

换句话说,是否可以有线程而没有进程。我认为没有进程就不可能有线程。一个进程至少有一个主线程。

multithreading operating-system process

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

C 中格式说明符的作用是什么?

我编写此代码是为了“查找给定字符是否是数字”:

#include<stdio.h>
int main()
{
    char ch;
    printf("enter a character");
    scanf("%c", &ch);
    printf("%c", ch>='0'&&ch<='9');
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它已编译,但在获取输入后没有给出任何输出。然而,在将%c倒数第二行更改为%d格式说明符后,它确实起作用了。我有点困惑为什么%d有效但%c没有,尽管变量是char数据类型。

c format-specifiers

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