我试图写出定义为的字符串的字节大小
#define PATHA "/tmp/matrix_a"
使用代码
rtn=write(data,(strlen(PATHA)*sizeof(char)),sizeof(int));
if(rtn < 0)
perror("Writing data_file 2 ");
Run Code Online (Sandbox Code Playgroud)
我回来了 Writing data_file 2 : Bad address
这是一个错误的地址究竟是什么?数据文件描述符是打开的,并且在上述代码段之前和之后正确写入。要写入文件的数据必须data是原始数据,而不是 ASCII。
我也试过将字符串定义为 char[] 并有同样的问题
第二个参数write()是要写入的字节的地址,但您正在传递要自己写入的字节。为了获取地址,必须将这些字节存储在变量中(不能获取表达式结果的地址)。例如:
size_t patha_len = strlen(PATHA);
rtn = write(data, &patha_len, sizeof patha_len);
Run Code Online (Sandbox Code Playgroud)