Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Michael A. (Mike) Iovine
p1
Commits
3e33dca6
Commit
3e33dca6
authored
5 years ago
by
John M. (Jack) Maxfield
Browse files
Options
Download
Email Patches
Plain Diff
write to output file in myzip
parent
940bd3a2
master
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/myzip/myzip.c
+8
-8
src/myzip/myzip.c
with
8 additions
and
8 deletions
+8
-8
src/myzip/myzip.c
View file @
3e33dca6
...
...
@@ -51,7 +51,7 @@ int main(int argc, char *argv[])
const
char
*
output_file_name
=
argv
[
1
];
const
char
*
input_file_name
=
argv
[
2
];
FILE
*
input_file
=
fopen
(
input_file_name
,
"r"
);
FILE
*
output_file
=
fopen
(
output_file_name
,
"w"
);
FILE
*
output_file
=
fopen
(
output_file_name
,
"w
+
"
);
if
(
input_file
==
NULL
)
{
...
...
@@ -75,11 +75,11 @@ int main(int argc, char *argv[])
write_u32
(
output_file
,
0x04034b50
);
/* local file signature */
write_u16
(
output_file
,
20
);
/* extract version */
write_u16
(
output_file
,
0
);
/* general purpose flag */
write_u16
(
output_file
,
0
);
/* compression method */
write_u16
(
output_file
,
8
);
/* compression method */
write_u16
(
output_file
,
0
);
/* last mod file time */
write_u16
(
output_file
,
0
);
/* last mod file date */
write_u32
(
output_file
,
0xDEADBEEF
);
/* crc */
size_t
compressed_size_loc
=
ftell
(
in
put_file
);
size_t
compressed_size_loc
=
ftell
(
out
put_file
);
write_u32
(
output_file
,
0
);
/* compressed file size */
write_u32
(
output_file
,
input_file_size
);
/* uncompressed file size */
write_u16
(
output_file
,
strlen
(
input_file_name
));
/* file name len */
...
...
@@ -88,12 +88,12 @@ int main(int argc, char *argv[])
/* extra field */
/* copy input file to output */
uint32_t
compressed_size
=
write_lz77_stream
(
input_file
,
output_file
);
printf
(
"Compressed size = %d
\n
"
,
compressed_size
);
size_t
central_directory_start
=
ftell
(
input_file
);
/* save location */
fseek
(
input_file
,
compressed_size_loc
,
SEEK_SET
);
/* move back */
size_t
central_directory_start
=
ftell
(
output_file
);
/* save location */
fseek
(
output_file
,
compressed_size_loc
,
SEEK_SET
);
/* move back */
write_u32
(
output_file
,
compressed_size
);
/* write compressed size */
fseek
(
in
put_file
,
central_directory_start
,
SEEK_SET
);
/* return to writing */
fseek
(
out
put_file
,
central_directory_start
,
SEEK_SET
);
/* return to writing */
/* (2) CENTRAL DIRECTORY RECORD */
write_u32
(
output_file
,
0x02014b50
);
/* central directory signature */
...
...
@@ -101,7 +101,7 @@ int main(int argc, char *argv[])
write_u8
(
output_file
,
65
);
/* made by */
write_u16
(
output_file
,
20
);
/* extract version */
write_u16
(
output_file
,
0
);
/* general purpose bit flag */
write_u16
(
output_file
,
0
);
/* compression method */
write_u16
(
output_file
,
8
);
/* compression method */
write_u16
(
output_file
,
0
);
/* last mod file time */
write_u16
(
output_file
,
0
);
/* last mod file date */
write_u32
(
output_file
,
0xdeadbeef
);
/* crc */
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help