RosettaCodeData/Task/Create-a-file/Blue/create-a-file.blue

35 lines
828 B
Plaintext

global _start
: syscall ( num:eax -- result:eax ) syscall ;
: exit ( status:edi -- noret ) 60 syscall ;
: bye ( -- noret ) 0 exit ;
: die ( err:eax -- noret ) neg exit ;
: unwrap ( result:eax -- value:eax ) dup 0 cmp ' die xl ;
: ordie ( result -- ) unwrap drop ;
: open ( pathname:edi flags:esi mode:edx -- fd:eax ) 2 syscall unwrap ;
: close ( fd:edi -- ) 3 syscall ordie ;
: mkdir ( pathname:edi mode:esi -- ) 83 syscall ordie ;
00001 const for-writing
00100 const create
01000 const truncate
: create-file ( pathname -- )
create for-writing or truncate or
0640 open close ;
: make-directory ( pathname -- ) 0750 mkdir ;
: create-output-file ( -- ) s" output.txt" drop create-file ;
: make-docs-directory ( -- ) s" docs" drop make-directory ;
: _start ( -- noret )
create-output-file
make-docs-directory
bye
;