c - 在 C 代码中将管道写入电子邮件

标签 c popen fwrite

我正在尝试使用 popen 打开邮件进程的管道并将内存映射数组(shared_array)写入电子邮件正文。电子邮件已发送,但仅列出了shared_array 的第一个条目。感谢任何帮助

FILE *fp;
char (*shared_array)[MAXLINE]
shared_array= mmap(0,100*MAXLINE,PROT_READ | PROT_WRITE,MAP_SHARED | MAP_ANON,-1,0);  


fp = popen("mail -s testing joe@smith.com","w");
for(k =0; k<total_count;k++){
    fwrite(shared_array[k],sizeof(shared_array[k]),1,fp);
}
    fwrite(".\n",sizeof(char*),3,fp);
    pclose(fp);

    printf("\n\nEmail Sent\n\n");
}

最佳答案

巴勃罗说得对。我需要使用 strlen

fwrite(shared_array[k],strlen(shared_array[k]),1,fp);

关于c - 在 C 代码中将管道写入电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48957466/

相关文章:

c - 将 int 与 char 数组相加

c++ - C/C++ 创建一个带有负值的枚举,而不必对其编号

python - 如何通过循环 subprocess/popen 使用从文件读取的多个变量

file - FFMPEG:Windows 中的标准输出与文件

c - fwrite 在二进制文件中写入矩阵的错误赋值

c - 如何在结构中 fwrite() 两种不同类型的变量?

c - 转储内核模块堆栈

c - 在 C 中解析可选的命令行参数

Python,Popen 和 select - 等待进程终止或超时

python - subprocess.Popen 的多个实例