我试图将空指针中的信息放入 char 数组中,以跟踪文件开头的内容,而不是每次我想写入文件时都必须读取文件以确保非法内容没有被写入。
例子:
unsigned long write_file_at(File file, void *data, unsigned long num_bytes,
SeekAnchor start, long offset) {
fserror=NONE;
if (! file->fp || ! seek_file(file, start, offset)) {
fserror=WRITE_FAILED;
}
else if (offset == 0L && !strncmp(data, "MZ", 2) && start == BEGINNING_OF_FILE){
fserror = ILLEGAL_MZ;
这按预期工作得很好。然后,如果写入是合法的并且它写入文件的第一个字节,我想放置它们的字节,它写入一个 char 数组以跟踪写入
稍后在同一写入函数中的示例:(有点忽略长if语句,还是wip)
else{
bytes_written=fwrite(data, 1, num_bytes, file->fp);
if ((num_bytes == 1 || num_bytes == 2) && (start == BEGINNING_OF_FILE
|| (start == END_OF_FILE && offset == -(ftell\
(file->fp)))
|| (start == CURRENT_POSITION && offset == -(\
ftell(file->fp))))){
file->mem[0] = (char *)data;} //This is what I am struggling with
if (bytes_written < num_bytes) {
fserror=WRITE_FAILED;
}
}
return bytes_written;
}
如何从数据指针中提取第一个字母/字节并将其放入一个字符数组中?
我是一名优秀的程序员,十分优秀!