diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2019-10-08 14:12:40 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-10-08 14:12:40 +0100 |
| commit | 9d04c6ee269774a082b504debb39073cf28da678 (patch) | |
| tree | f5cb766ce2016725b65c24c4f97c36737caf9c2f | |
| parent | b390e188f6192210aabc3038d6b47aaf88b01ee7 (diff) | |
| parent | 80e552a9e09e819719228cd8c23ef8c92506bcb1 (diff) | |
| download | perlweeklychallenge-club-9d04c6ee269774a082b504debb39073cf28da678.tar.gz perlweeklychallenge-club-9d04c6ee269774a082b504debb39073cf28da678.tar.bz2 perlweeklychallenge-club-9d04c6ee269774a082b504debb39073cf28da678.zip | |
Merge pull request #730 from mienaikage/challenge-029-2-p6
Add ch-2.p6 for challenge-029
| -rwxr-xr-x | challenge-029/daniel-mita/perl6/ch-2.p6 | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/challenge-029/daniel-mita/perl6/ch-2.p6 b/challenge-029/daniel-mita/perl6/ch-2.p6 new file mode 100755 index 0000000000..9a6365be70 --- /dev/null +++ b/challenge-029/daniel-mita/perl6/ch-2.p6 @@ -0,0 +1,22 @@ +#!/usr/bin/env perl6 +use v6; +use NativeCall; + +sub getrandom ( Buf, size_t, uint32 --> ssize_t ) is native {*} + +#| http://man7.org/linux/man-pages/man2/getrandom.2.html +sub MAIN ( + UInt $bytes = 8, #= Number of random bytes (defaults to 8) + UInt $flags = 0, +) { + given Buf.allocate($bytes) { + given .&getrandom: $bytes, $flags { + when -1 { + die sub strerror( int32 --> Str ) is native {*}( + cglobal( ('c', v6), 'errno', int32 ) ); + } + when * < $bytes { die 'got fewer bytes than requested' } + } + .say; + } +} |
