From 8652d4bffcab955ba4621931b1aef323f8cfe40e Mon Sep 17 00:00:00 2001 From: chensihan Date: Thu, 19 Dec 2024 10:04:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=BF=94=E5=9B=9E=E5=80=BC?= =?UTF-8?q?=20Signed-off-by:=20chensihan=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frameworks/native/backup_ext/include/tar_file.h | 2 +- frameworks/native/backup_ext/src/tar_file.cpp | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/frameworks/native/backup_ext/include/tar_file.h b/frameworks/native/backup_ext/include/tar_file.h index 27c798966..a728e4d4a 100644 --- a/frameworks/native/backup_ext/include/tar_file.h +++ b/frameworks/native/backup_ext/include/tar_file.h @@ -134,7 +134,7 @@ private: * @param ioBuffer 写入的文件信息 * @param read 读取文件 */ - off_t SplitWriteAll(const std::vector &ioBuffer, off_t read); + off_t SplitWriteAll(const std::vector &ioBuffer, off_t read, int &err); /** * @brief creaat split tarfile diff --git a/frameworks/native/backup_ext/src/tar_file.cpp b/frameworks/native/backup_ext/src/tar_file.cpp index 0349d74b4..3a3f4b5c7 100644 --- a/frameworks/native/backup_ext/src/tar_file.cpp +++ b/frameworks/native/backup_ext/src/tar_file.cpp @@ -72,7 +72,7 @@ bool TarFile::Packet(const vector &srcFiles, const string &tarFileName, size_t index = 0; for (const auto &filePath : srcFiles) { - int err = 0; + int err = BError::E_PACKET; rootPath_ = filePath; if (!TraversalFile(rootPath_, err)) { HILOGE("ReportErr Failed to traversal file, file path is:%{public}s, err = %{public}d", @@ -351,7 +351,7 @@ bool TarFile::WriteFileContent(const string &fileName, off_t size, int &err) } // write buffer to tar file - if (SplitWriteAll(ioBuffer_, read) != read) { + if (SplitWriteAll(ioBuffer_, read, err) != read) { HILOGE("Failed to split write all"); break; } @@ -365,7 +365,7 @@ bool TarFile::WriteFileContent(const string &fileName, off_t size, int &err) return false; } -off_t TarFile::SplitWriteAll(const vector &ioBuffer, off_t read) +off_t TarFile::SplitWriteAll(const vector &ioBuffer, off_t read, int &err) { off_t len = static_cast(ioBuffer.size()); if (len > read) { @@ -378,6 +378,7 @@ off_t TarFile::SplitWriteAll(const vector &ioBuffer, off_t read) // 再执行一遍 writeBytes = fwrite(&ioBuffer[count], sizeof(uint8_t), len - count, currentTarFile_); if (writeBytes < 1) { + err = errno; HILOGE("Failed to fwrite tar file, err = %{public}d", errno); return count; } -- Gitee