121. UDP listen and read
Listen UDP traffic on port p and read 1024 bytes into buffer b.
Rust 借鉴了很多语言,比如Cyclone(一种安全的C语言方言)的基于区域的内存管理模型;C++ 的RAII 原理;Haskell 的类型系统、错误处理类型、typeclasses等等。Rust 有非常小的 runtime,不需要垃圾回收,默认情况下是在栈上进行分配内存,而不是堆上。Rust 的编译器 rustc,一开始使用 Ocaml (一种函数式语言)编写,后来在2011年 Rust 实现了自举。
配套视频:以 Rust 为例,带你搞懂编程语言本质
在编译机上把一个go项目编译成二进制,cp到服务器(和编译机不是一台机器,但操作系统和指令集架构一样)的某个目录,执行后直接退出了,没有任何报错信息。
在本地Mac上把代码clone下来,go build编译成二进制,可以正常运行。在Mac上交叉编译成linux/amd64的二进制文件,sz到测试服务器上,还是会直接退出。之后又找了一台ubuntu amd64的机器,还是一样。
但在这台ubuntu amd64机器上clone代码,进行编译,又可以正常运行…
后面发现,引入Mac使问题变复杂了…其实本身很简单: 在Ubuntu系统 amd64架构机器A上面源码编译,并可正常运行的二进制文件,sz到另一台Ubuntu系统 amd64架构的机器B上,运行后直接退出,没有任何报错
1 | package main |