removed err_no add free read, write