]> Kevux Git Server - fll/commitdiff
Bugfix: closing the before at the end of the program can cause output pipe never...
authorKevin Day <thekevinday@gmail.com>
Mon, 14 Dec 2020 01:44:59 +0000 (19:44 -0600)
committerKevin Day <thekevinday@gmail.com>
Mon, 14 Dec 2020 01:44:59 +0000 (19:44 -0600)
Make sure that the output pipes (output buffers) are flushed before closing.

19 files changed:
level_3/byte_dump/c/main.c
level_3/control/c/main.c
level_3/controller/c/main.c
level_3/fake/c/main.c
level_3/fss_basic_list_read/c/main.c
level_3/fss_basic_list_write/c/main.c
level_3/fss_basic_read/c/main.c
level_3/fss_basic_write/c/main.c
level_3/fss_embedded_list_read/c/main.c
level_3/fss_embedded_list_write/c/main.c
level_3/fss_extended_list_read/c/main.c
level_3/fss_extended_list_write/c/main.c
level_3/fss_extended_read/c/main.c
level_3/fss_extended_write/c/main.c
level_3/fss_status_code/c/main.c
level_3/iki_read/c/main.c
level_3/iki_write/c/main.c
level_3/init/c/main.c
level_3/status_code/c/main.c

index 171442274be3306e8b73362426f2b4108c35acea..3d6d9102fab5ced764ba02461235477513cf1a5c 100644 (file)
@@ -10,6 +10,10 @@ int main(const unsigned long argc, const f_string_t *argv) {
 
   const f_status_t status = byte_dump_main(arguments, &data);
 
+  // flush output pipes before closing.
+  fflush(f_type_output);
+  fflush(f_type_error);
+
   // close all open file descriptors.
   close(f_type_descriptor_output);
   close(f_type_descriptor_input);
index b0da32a9524faced014ed48d348c47b818f6a6df..956ba14857dbec3a2192bb291c9d691ca0a1883d 100644 (file)
@@ -10,6 +10,10 @@ int main(const unsigned long argc, const f_string_t *argv) {
 
   const f_status_t status = control_main(arguments, &data);
 
+  // flush output pipes before closing.
+  fflush(f_type_output);
+  fflush(f_type_error);
+
   // close all open file descriptors.
   close(f_type_descriptor_output);
   close(f_type_descriptor_input);
index d9cde60ea61600af07173eaf3353089cade05812..9a5eef394de7d9f795cc89f2ab1ee80ff3b3bb57 100644 (file)
@@ -12,6 +12,10 @@ int main(const unsigned long argc, const f_string_t *argv) {
 
   const f_status_t status = controller_main(arguments, &data);
 
+  // flush output pipes before closing.
+  fflush(f_type_output);
+  fflush(f_type_error);
+
   // close all open file descriptors.
   close(f_type_descriptor_output);
   close(f_type_descriptor_input);
index bf9a47ed4b4bfbba551e7fdb867b1a504bf0d0c9..1091ef4ab3609bc497307fa0308fee52d9674427 100644 (file)
@@ -45,6 +45,10 @@ int main(const unsigned long argc, const f_string_t *argv) {
 
   f_signal_close(&data.signal);
 
+  // flush output pipes before closing.
+  fflush(f_type_output);
+  fflush(f_type_error);
+
   // close all open file descriptors.
   close(f_type_descriptor_output);
   close(f_type_descriptor_input);
index c7119c89e240a65c123f84286e737c81b0d7bc49..aed5e66f0bd62180052cbfe366b9a74ec86e8ca0 100644 (file)
@@ -10,6 +10,10 @@ int main(const unsigned long argc, const f_string_t *argv) {
 
   const f_status_t status = fss_basic_list_read_main(arguments, &data);
 
+  // flush output pipes before closing.
+  fflush(f_type_output);
+  fflush(f_type_error);
+
   // close all open file descriptors.
   close(f_type_descriptor_output);
   close(f_type_descriptor_input);
index 8821ae6ca45c770ed8b19bbc3f28ef28e1e51293..7d8ed20f3d261461fffe89c92ba877ee13833ac9 100644 (file)
@@ -10,6 +10,10 @@ int main(const unsigned long argc, const f_string_t *argv) {
 
   const f_status_t status = fss_basic_list_write_main(arguments, &data);
 
+  // flush output pipes before closing.
+  fflush(f_type_output);
+  fflush(f_type_error);
+
   // close all open file descriptors.
   close(f_type_descriptor_output);
   close(f_type_descriptor_input);
index 525f9a868628148f354a413dcc09341a75a189de..d6a5479ac306c6abaee7a7ce1cd93cc11ef75416 100644 (file)
@@ -10,6 +10,10 @@ int main(const unsigned long argc, const f_string_t *argv) {
 
   const f_status_t status = fss_basic_read_main(arguments, &data);
 
+  // flush output pipes before closing.
+  fflush(f_type_output);
+  fflush(f_type_error);
+
   // close all open file descriptors.
   close(f_type_descriptor_output);
   close(f_type_descriptor_input);
index 3e3b56b271341e225e1438018401247fc11db296..f425c45bf992ac520bdf7d99a2e53bc11777fb1c 100644 (file)
@@ -10,6 +10,10 @@ int main(const unsigned long argc, const f_string_t *argv) {
 
   const f_status_t status = fss_basic_write_main(arguments, &data);
 
+  // flush output pipes before closing.
+  fflush(f_type_output);
+  fflush(f_type_error);
+
   // close all open file descriptors.
   close(f_type_descriptor_output);
   close(f_type_descriptor_input);
index 7cd347c709e3aa7ac820593cdd2430bd3fc9daea..5e459fb4460a75f6bd85b1528e4c7afd89c2c73e 100644 (file)
@@ -10,6 +10,10 @@ int main(const unsigned long argc, const f_string_t *argv) {
 
   const f_status_t status = fss_embedded_list_read_main(arguments, &data);
 
+  // flush output pipes before closing.
+  fflush(f_type_output);
+  fflush(f_type_error);
+
   // close all open file descriptors.
   close(f_type_descriptor_output);
   close(f_type_descriptor_input);
index d194dfba040f740de8b1eb93be195b9ccc8f2167..88476803355d6f9e55995f9a3ba80cd2b0bbb40a 100644 (file)
@@ -10,6 +10,10 @@ int main(const unsigned long argc, const f_string_t *argv) {
 
   const f_status_t status = fss_embedded_list_write_main(arguments, &data);
 
+  // flush output pipes before closing.
+  fflush(f_type_output);
+  fflush(f_type_error);
+
   // close all open file descriptors.
   close(f_type_descriptor_output);
   close(f_type_descriptor_input);
index c1d03831f532f3cddf4df1763eaf21ad0a11831d..6d750b251ff71921045cc0ffb7b40332373cb029 100644 (file)
@@ -10,6 +10,10 @@ int main(const unsigned long argc, const f_string_t *argv) {
 
   const f_status_t status = fss_extended_list_read_main(arguments, &data);
 
+  // flush output pipes before closing.
+  fflush(f_type_output);
+  fflush(f_type_error);
+
   // close all open file descriptors.
   close(f_type_descriptor_output);
   close(f_type_descriptor_input);
index d543498b19f2b4aa7d874bb9c4f877a533a722bb..bb11a767dfd412a83cd5b7cd41c4428c702697fb 100644 (file)
@@ -10,6 +10,10 @@ int main(const unsigned long argc, const f_string_t *argv) {
 
   const f_status_t status = fss_extended_list_write_main(arguments, &data);
 
+  // flush output pipes before closing.
+  fflush(f_type_output);
+  fflush(f_type_error);
+
   // close all open file descriptors.
   close(f_type_descriptor_output);
   close(f_type_descriptor_input);
index d9c3ea902da15e57e35acfefa95a7a2394be73ec..d4bf3e5c4564072414a94c607bf3884a8ccd318b 100644 (file)
@@ -10,6 +10,10 @@ int main(const unsigned long argc, const f_string_t *argv) {
 
   const f_status_t status = fss_extended_read_main(arguments, &data);
 
+  // flush output pipes before closing.
+  fflush(f_type_output);
+  fflush(f_type_error);
+
   // close all open file descriptors.
   close(f_type_descriptor_output);
   close(f_type_descriptor_input);
index 4eee1d6c90308812c5af64a7a0b67168801b5cef..fbadc6e9864466c83f801130974d7b59be15b6c2 100644 (file)
@@ -10,6 +10,10 @@ int main(const unsigned long argc, const f_string_t *argv) {
 
   const f_status_t status = fss_extended_write_main(arguments, &data);
 
+  // flush output pipes before closing.
+  fflush(f_type_output);
+  fflush(f_type_error);
+
   // close all open file descriptors.
   close(f_type_descriptor_output);
   close(f_type_descriptor_input);
index a668c81ee186290e656ec22ee926e45b4c8bf890..1880cb0eb229f5fcd646b653b2c0616c3f46eef9 100644 (file)
@@ -10,6 +10,10 @@ int main(const unsigned long argc, const f_string_t *argv) {
 
   const f_status_t status = fss_status_code_main(arguments, &data);
 
+  // flush output pipes before closing.
+  fflush(f_type_output);
+  fflush(f_type_error);
+
   // close all open file descriptors.
   close(f_type_descriptor_output);
   close(f_type_descriptor_input);
index 0a7f6b4dbac39d8a2a4785e08bb00a2640fdf895..2b91ba5eae31fdf40110c8bc7573ac291ae582f0 100644 (file)
@@ -10,6 +10,10 @@ int main(const unsigned long argc, const f_string_t *argv) {
 
   const f_status_t status = iki_read_main(arguments, &data);
 
+  // flush output pipes before closing.
+  fflush(f_type_output);
+  fflush(f_type_error);
+
   // close all open file descriptors.
   close(f_type_descriptor_output);
   close(f_type_descriptor_input);
index 08a68b7c48a731db6272aee2c3f2eb07282709cc..b1614dedfc07717e0f11f25eceea83e55b93f516 100644 (file)
@@ -10,6 +10,10 @@ int main(const unsigned long argc, const f_string_t *argv) {
 
   const f_status_t status = iki_write_main(arguments, &data);
 
+  // flush output pipes before closing.
+  fflush(f_type_output);
+  fflush(f_type_error);
+
   // close all open file descriptors.
   close(f_type_descriptor_output);
   close(f_type_descriptor_input);
index cd1282bdb81e1c0683a4d1d335a1ae90f07de4df..d10b1a00b6a182bf400aab594cb082100f5b2d6e 100644 (file)
@@ -28,6 +28,10 @@ int main(const unsigned long argc, const f_string_t *argv) {
 
   f_signal_close(&data.signal);
 
+  // flush output pipes before closing.
+  fflush(f_type_output);
+  fflush(f_type_error);
+
   // close all open file descriptors.
   close(f_type_descriptor_output);
   close(f_type_descriptor_input);
index 1126a88823eb40b9dd7b98d20245d7bcdecf69c6..0dd814535a85db843c8e1d204f57ef8a2f02da65 100644 (file)
@@ -10,6 +10,10 @@ int main(const unsigned long argc, const f_string_t *argv) {
 
   const f_status_t status = status_code_main(arguments, &data);
 
+  // flush output pipes before closing.
+  fflush(f_type_output);
+  fflush(f_type_error);
+
   // close all open file descriptors.
   close(f_type_descriptor_output);
   close(f_type_descriptor_input);