我正在尝试“mmap”二进制文件,以便使用AES对其进行加密,然后使用以下代码将加密数据写入另一个文件(outFile)。我试图修改mmap()和open()两个函数的标志,但是当我运行可执行文件时,我总是遇到分段错误。
awk 'length($1)==4{count[$1]++}
END{for(i in count) print i": "count[i]}
' RS=\( FS=@ input-file
答案 0 :(得分:1)
正如yano在评论中提到的,你的错误就在这里:
memcpy(outFile, ciphertext, sb.st_size);
您正试图memcpy到FILE *
这是完全错误的。这并不是你所期望的。您正在覆盖FILE
指向的outFile
结构的私人内部。
您应该在缓冲区上操作并使用fwrite
写入文件。
我建议您在深入f...
和加密之前熟悉使用mmap
函数的基本文件I / O操作。