如何在两个进程之间发送带管道的整数!

ero*_*gol 15 c linux ipc pipe

我试图在POSIX系统中发送带管道的整数,但write()函数正在发送字符串或字符数据.有没有办法用管道发送整数?

问候

asc*_*ler 27

安全的方法是使用snprintfstrtol.

但是,如果您知道这两个进程都是使用相同版本的编译器创建的(例如,它们是相同的可执行文件fork),您可以利用以下事实:C中的任何内容都可以作为以下数组读取或写入char:

int n = something();
write(pipe_w, &n, sizeof(n));

int n;
read(pipe_r, &n, sizeof(n));
Run Code Online (Sandbox Code Playgroud)