extern __errno_location 

section .text
    global ft_read
    ft_read:

        xor rax, rax
    
        syscall
    
        cmp rax, 0
        jne syscall_failed
    
        ret
    
    syscall_failed:
        
        neg rax
        mov rbx, rax
        
        call __errno_location wrt ..plt

        mov [rax], rbx
        mov rax, -1
        ret