我开始学习 ruby 和 scraping,我尝试用 open 打开一个 url,我得到了
lib/scrapper.rb:7:in `initialize': No such file or directory @ rb_sysopen - https://en.wikipedia.org/wiki/Douglas_Adams (Errno::ENOENT) from lib/scrapper.rb:7:in `open' from lib/scrapper.rb:7:in `<main>'
这是我的代码:
# frozen_string_literal: true
require 'rubygems'
require 'open-uri'
require 'nokogiri'
document = open("https://en.wikipedia.org/wiki/Douglas_Adams")
puts document
Run Code Online (Sandbox Code Playgroud)
经过长时间的谷歌研究后,我没有找到任何解决方案,我用这个网址测试打开:http://www.krosmoz.com/fr/almanax 谢谢大家
ps我用的是mac m1不知道是否是兼容性问题
我为一个学校项目编写程序集,但我被困在一个点上,我需要在 asm 中重写 Read,所以我明白了,但是我需要设置 errno 变量,然后我的 read 可以在出现错误时返回 -1例如,将 errno 的值设置为 9。而且我没有找到如何更改这个著名的 errno :( 这是我的实际代码:
global my_write
section .text
my_write:
mov rax, 1 ; sys_write
syscall ; call write
cmp rax, 0
jl error
ret
error:
mov rax, -1
ret
Run Code Online (Sandbox Code Playgroud)
ps:我找到了需要使用 __error 的地方,但我没有找到任何关于此的文档:(
非常感谢:D
编辑 :
谢谢你们的帮助!__errno_location 工作我做到了:
extern __ernno_location
global my_write
section .text
my_write:
mov rax, 1 ; sys_write
syscall ; call write
cmp rax, 0
jl error
ret
error:
neg rax ; get absolute value of syscall return …Run Code Online (Sandbox Code Playgroud)