Use printf's %m format instead of strerror(errno) in more places
authorMichael Paquier <michael@paquier.xyz>
Tue, 12 Mar 2024 01:02:54 +0000 (10:02 +0900)
committerMichael Paquier <michael@paquier.xyz>
Tue, 12 Mar 2024 01:02:54 +0000 (10:02 +0900)
Most callers of strerror() are removed from the backend code.  The
remaining callers require special handling with a saved errno from a
previous system call.  The frontend code still needs strerror() where
error states need to be handled outside of fprintf.

Note that pg_regress is not changed to use %m as the TAP output may
clobber errno, since those functions call fprintf() and friends before
evaluating the format string.

Support for %m in src/port/snprintf.c has been added in d6c55de1f99a,
hence all the stable branches currently supported include it.

Author: Dagfinn Ilmari MannsÃ¥ker
Discussion: https://postgr.es/m/87sf13jhuw.fsf@wibble.ilmari.org

24 files changed:
src/backend/postmaster/postmaster.c
src/backend/postmaster/syslogger.c
src/backend/utils/misc/guc.c
src/bin/initdb/findtimezone.c
src/bin/pg_ctl/pg_ctl.c
src/bin/pg_dump/compress_gzip.c
src/bin/pg_dump/compress_none.c
src/bin/pg_upgrade/check.c
src/bin/pg_upgrade/controldata.c
src/bin/pg_upgrade/exec.c
src/bin/pg_upgrade/file.c
src/bin/pg_upgrade/function.c
src/bin/pg_upgrade/option.c
src/bin/pg_upgrade/parallel.c
src/bin/pg_upgrade/pg_upgrade.c
src/bin/pg_upgrade/relfilenumber.c
src/bin/pg_upgrade/tablespace.c
src/bin/pg_upgrade/version.c
src/common/psprintf.c
src/interfaces/ecpg/preproc/ecpg.c
src/port/path.c
src/test/isolation/isolationtester.c
src/test/modules/libpq_pipeline/libpq_pipeline.c
src/tools/ifaddrs/test_ifaddrs.c

index f3c09e8dc0dbacffef4df7e96be1f451283962ba..af8a1efe6650031b2141172176dc98476cb9db51 100644 (file)
@@ -1375,12 +1375,12 @@ PostmasterMain(int argc, char *argv[])
 
            /* Make PID file world readable */
            if (chmod(external_pid_file, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH) != 0)
-               write_stderr("%s: could not change permissions of external PID file \"%s\": %s\n",
-                            progname, external_pid_file, strerror(errno));
+               write_stderr("%s: could not change permissions of external PID file \"%s\": %m\n",
+                            progname, external_pid_file);
        }
        else
-           write_stderr("%s: could not write external PID file \"%s\": %s\n",
-                        progname, external_pid_file, strerror(errno));
+           write_stderr("%s: could not write external PID file \"%s\": %m\n",
+                        progname, external_pid_file);
 
        on_proc_exit(unlink_external_pid_file, 0);
    }
@@ -1589,8 +1589,8 @@ checkControlFile(void)
    {
        write_stderr("%s: could not find the database system\n"
                     "Expected to find it in the directory \"%s\",\n"
-                    "but could not open file \"%s\": %s\n",
-                    progname, DataDir, path, strerror(errno));
+                    "but could not open file \"%s\": %m\n",
+                    progname, DataDir, path);
        ExitPostmaster(2);
    }
    FreeFile(fp);
@@ -6277,15 +6277,13 @@ read_backend_variables(char *id, Port **port, BackgroundWorker **worker)
    fp = AllocateFile(id, PG_BINARY_R);
    if (!fp)
    {
-       write_stderr("could not open backend variables file \"%s\": %s\n",
-                    id, strerror(errno));
+       write_stderr("could not open backend variables file \"%s\": %m\n", id);
        exit(1);
    }
 
    if (fread(&param, sizeof(param), 1, fp) != 1)
    {
-       write_stderr("could not read from backend variables file \"%s\": %s\n",
-                    id, strerror(errno));
+       write_stderr("could not read from backend variables file \"%s\": %m\n", id);
        exit(1);
    }
 
@@ -6293,8 +6291,7 @@ read_backend_variables(char *id, Port **port, BackgroundWorker **worker)
    FreeFile(fp);
    if (unlink(id) != 0)
    {
-       write_stderr("could not remove file \"%s\": %s\n",
-                    id, strerror(errno));
+       write_stderr("could not remove file \"%s\": %m\n", id);
        exit(1);
    }
 #else
index c2a6a226e70e65e7e9b160dcc7ecfcf8a916f722..d9d042f5628a1f5a7a4eeee5a846af92099aa1b2 100644 (file)
@@ -1173,7 +1173,7 @@ write_syslogger_file(const char *buffer, int count, int destination)
     * to our input pipe which would result in a different sort of looping.
     */
    if (rc != count)
-       write_stderr("could not write to log file: %s\n", strerror(errno));
+       write_stderr("could not write to log file: %m\n");
 }
 
 #ifdef WIN32
index dd5a46469a67642e07179ad1286c3b484eb4478f..391866145eefae341346ed3aad1d5c7c4fb5314e 100644 (file)
@@ -1799,10 +1799,9 @@ SelectConfigFiles(const char *userDoption, const char *progname)
 
    if (configdir && stat(configdir, &stat_buf) != 0)
    {
-       write_stderr("%s: could not access directory \"%s\": %s\n",
+       write_stderr("%s: could not access directory \"%s\": %m\n",
                     progname,
-                    configdir,
-                    strerror(errno));
+                    configdir);
        if (errno == ENOENT)
            write_stderr("Run initdb or pg_basebackup to initialize a PostgreSQL data directory.\n");
        return false;
@@ -1851,8 +1850,8 @@ SelectConfigFiles(const char *userDoption, const char *progname)
     */
    if (stat(ConfigFileName, &stat_buf) != 0)
    {
-       write_stderr("%s: could not access the server configuration file \"%s\": %s\n",
-                    progname, ConfigFileName, strerror(errno));
+       write_stderr("%s: could not access the server configuration file \"%s\": %m\n",
+                    progname, ConfigFileName);
        free(configdir);
        return false;
    }
index e15630fdee0c917f966701119cf136b9a689c9ca..95204e482be0a1933ce888563b8df326022016d5 100644 (file)
@@ -680,8 +680,8 @@ scan_available_timezones(char *tzdir, char *tzdirsub, struct tztry *tt,
        if (stat(tzdir, &statbuf) != 0)
        {
 #ifdef DEBUG_IDENTIFY_TIMEZONE
-           fprintf(stderr, "could not stat \"%s\": %s\n",
-                   tzdir, strerror(errno));
+           fprintf(stderr, "could not stat \"%s\": %m\n",
+                   tzdir);
 #endif
            tzdir[tzdir_orig_len] = '\0';
            continue;
index 6900b27675e45f0bfe4099275ea8a7564ccdcddf..405e223c19094f70c1a4a5dd06d2d1fd2cc3540c 100644 (file)
@@ -254,8 +254,8 @@ get_pgpid(bool is_status_request)
            write_stderr(_("%s: directory \"%s\" does not exist\n"), progname,
                         pg_data);
        else
-           write_stderr(_("%s: could not access directory \"%s\": %s\n"), progname,
-                        pg_data, strerror(errno));
+           write_stderr(_("%s: could not access directory \"%s\": %m\n"), progname,
+                        pg_data);
 
        /*
         * The Linux Standard Base Core Specification 3.1 says this should
@@ -280,8 +280,8 @@ get_pgpid(bool is_status_request)
            return 0;
        else
        {
-           write_stderr(_("%s: could not open PID file \"%s\": %s\n"),
-                        progname, pid_file, strerror(errno));
+           write_stderr(_("%s: could not open PID file \"%s\": %m\n"),
+                        progname, pid_file);
            exit(1);
        }
    }
@@ -454,8 +454,8 @@ start_postmaster(void)
    if (pm_pid < 0)
    {
        /* fork failed */
-       write_stderr(_("%s: could not start server: %s\n"),
-                    progname, strerror(errno));
+       write_stderr(_("%s: could not start server: %m\n"),
+                    progname);
        exit(1);
    }
    if (pm_pid > 0)
@@ -474,8 +474,8 @@ start_postmaster(void)
 #ifdef HAVE_SETSID
    if (setsid() < 0)
    {
-       write_stderr(_("%s: could not start server due to setsid() failure: %s\n"),
-                    progname, strerror(errno));
+       write_stderr(_("%s: could not start server due to setsid() failure: %m\n"),
+                    progname);
        exit(1);
    }
 #endif
@@ -496,8 +496,8 @@ start_postmaster(void)
    (void) execl("/bin/sh", "/bin/sh", "-c", cmd, (char *) NULL);
 
    /* exec failed */
-   write_stderr(_("%s: could not start server: %s\n"),
-                progname, strerror(errno));
+   write_stderr(_("%s: could not start server: %m\n"),
+                progname);
    exit(1);
 
    return 0;                   /* keep dumb compilers quiet */
@@ -544,8 +544,8 @@ start_postmaster(void)
             */
            if (errno != ENOENT)
            {
-               write_stderr(_("%s: could not open log file \"%s\": %s\n"),
-                            progname, log_file, strerror(errno));
+               write_stderr(_("%s: could not open log file \"%s\": %m\n"),
+                            progname, log_file);
                exit(1);
            }
        }
@@ -851,8 +851,8 @@ trap_sigint_during_startup(SIGNAL_ARGS)
    if (postmasterPID != -1)
    {
        if (kill(postmasterPID, SIGINT) != 0)
-           write_stderr(_("%s: could not send stop signal (PID: %d): %s\n"),
-                        progname, (int) postmasterPID, strerror(errno));
+           write_stderr(_("%s: could not send stop signal (PID: %d): %m\n"),
+                        progname, (int) postmasterPID);
    }
 
    /*
@@ -1035,8 +1035,7 @@ do_stop(void)
 
    if (kill(pid, sig) != 0)
    {
-       write_stderr(_("%s: could not send stop signal (PID: %d): %s\n"), progname, (int) pid,
-                    strerror(errno));
+       write_stderr(_("%s: could not send stop signal (PID: %d): %m\n"), progname, (int) pid);
        exit(1);
    }
 
@@ -1103,8 +1102,7 @@ do_restart(void)
    {
        if (kill(pid, sig) != 0)
        {
-           write_stderr(_("%s: could not send stop signal (PID: %d): %s\n"), progname, (int) pid,
-                        strerror(errno));
+           write_stderr(_("%s: could not send stop signal (PID: %d): %m\n"), progname, (int) pid);
            exit(1);
        }
 
@@ -1159,8 +1157,8 @@ do_reload(void)
 
    if (kill(pid, sig) != 0)
    {
-       write_stderr(_("%s: could not send reload signal (PID: %d): %s\n"),
-                    progname, (int) pid, strerror(errno));
+       write_stderr(_("%s: could not send reload signal (PID: %d): %m\n"),
+                    progname, (int) pid);
        exit(1);
    }
 
@@ -1207,25 +1205,25 @@ do_promote(void)
 
    if ((prmfile = fopen(promote_file, "w")) == NULL)
    {
-       write_stderr(_("%s: could not create promote signal file \"%s\": %s\n"),
-                    progname, promote_file, strerror(errno));
+       write_stderr(_("%s: could not create promote signal file \"%s\": %m\n"),
+                    progname, promote_file);
        exit(1);
    }
    if (fclose(prmfile))
    {
-       write_stderr(_("%s: could not write promote signal file \"%s\": %s\n"),
-                    progname, promote_file, strerror(errno));
+       write_stderr(_("%s: could not write promote signal file \"%s\": %m\n"),
+                    progname, promote_file);
        exit(1);
    }
 
    sig = SIGUSR1;
    if (kill(pid, sig) != 0)
    {
-       write_stderr(_("%s: could not send promote signal (PID: %d): %s\n"),
-                    progname, (int) pid, strerror(errno));
+       write_stderr(_("%s: could not send promote signal (PID: %d): %m\n"),
+                    progname, (int) pid);
        if (unlink(promote_file) != 0)
-           write_stderr(_("%s: could not remove promote signal file \"%s\": %s\n"),
-                        progname, promote_file, strerror(errno));
+           write_stderr(_("%s: could not remove promote signal file \"%s\": %m\n"),
+                        progname, promote_file);
        exit(1);
    }
 
@@ -1280,25 +1278,25 @@ do_logrotate(void)
 
    if ((logrotatefile = fopen(logrotate_file, "w")) == NULL)
    {
-       write_stderr(_("%s: could not create log rotation signal file \"%s\": %s\n"),
-                    progname, logrotate_file, strerror(errno));
+       write_stderr(_("%s: could not create log rotation signal file \"%s\": %m\n"),
+                    progname, logrotate_file);
        exit(1);
    }
    if (fclose(logrotatefile))
    {
-       write_stderr(_("%s: could not write log rotation signal file \"%s\": %s\n"),
-                    progname, logrotate_file, strerror(errno));
+       write_stderr(_("%s: could not write log rotation signal file \"%s\": %m\n"),
+                    progname, logrotate_file);
        exit(1);
    }
 
    sig = SIGUSR1;
    if (kill(pid, sig) != 0)
    {
-       write_stderr(_("%s: could not send log rotation signal (PID: %d): %s\n"),
-                    progname, (int) pid, strerror(errno));
+       write_stderr(_("%s: could not send log rotation signal (PID: %d): %m\n"),
+                    progname, (int) pid);
        if (unlink(logrotate_file) != 0)
-           write_stderr(_("%s: could not remove log rotation signal file \"%s\": %s\n"),
-                        progname, logrotate_file, strerror(errno));
+           write_stderr(_("%s: could not remove log rotation signal file \"%s\": %m\n"),
+                        progname, logrotate_file);
        exit(1);
    }
 
@@ -1396,8 +1394,8 @@ do_kill(pid_t pid)
 {
    if (kill(pid, sig) != 0)
    {
-       write_stderr(_("%s: could not send signal %d (PID: %d): %s\n"),
-                    progname, sig, (int) pid, strerror(errno));
+       write_stderr(_("%s: could not send signal %d (PID: %d): %m\n"),
+                    progname, sig, (int) pid);
        exit(1);
    }
 }
index c768a117509b09991e1072eb46b760723f0c8207..26768b9f71a26bf6bdc6af7d765673f8ef2ce8e7 100644 (file)
@@ -292,7 +292,7 @@ Gzip_getc(CompressFileHandle *CFH)
    if (ret == EOF)
    {
        if (!gzeof(gzfp))
-           pg_fatal("could not read from input file: %s", strerror(errno));
+           pg_fatal("could not read from input file: %m");
        else
            pg_fatal("could not read from input file: end of file");
    }
index 06c400424a1d6eb76bca26d14e1417972d8a1c33..f3a524d8a4969a7fb93385f5eb287a1ef8fc8d5f 100644 (file)
@@ -94,8 +94,7 @@ read_none(void *ptr, size_t size, size_t *rsize, CompressFileHandle *CFH)
 
    ret = fread(ptr, 1, size, fp);
    if (ret != size && !feof(fp))
-       pg_fatal("could not read from input file: %s",
-                strerror(errno));
+       pg_fatal("could not read from input file: %m");
 
    if (rsize)
        *rsize = ret;
@@ -137,7 +136,7 @@ getc_none(CompressFileHandle *CFH)
    if (ret == EOF)
    {
        if (!feof(fp))
-           pg_fatal("could not read from input file: %s", strerror(errno));
+           pg_fatal("could not read from input file: %m");
        else
            pg_fatal("could not read from input file: end of file");
    }
index 5ab8fe800913400529f6b73de938dc4b5a3dc451..8ce6c674e321f17bb1ca02828bf91d29beafcf30 100644 (file)
@@ -505,8 +505,8 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name)
    prep_status("Creating script to delete old cluster");
 
    if ((script = fopen_priv(*deletion_script_file_name, "w")) == NULL)
-       pg_fatal("could not open file \"%s\": %s",
-                *deletion_script_file_name, strerror(errno));
+       pg_fatal("could not open file \"%s\": %m",
+                *deletion_script_file_name);
 
 #ifndef WIN32
    /* add shebang header */
@@ -556,8 +556,8 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name)
 
 #ifndef WIN32
    if (chmod(*deletion_script_file_name, S_IRWXU) != 0)
-       pg_fatal("could not add execute permission to file \"%s\": %s",
-                *deletion_script_file_name, strerror(errno));
+       pg_fatal("could not add execute permission to file \"%s\": %m",
+                *deletion_script_file_name);
 #endif
 
    check_ok();
@@ -678,8 +678,7 @@ check_proper_datallowconn(ClusterInfo *cluster)
            if (strcmp(datallowconn, "f") == 0)
            {
                if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
-                   pg_fatal("could not open file \"%s\": %s",
-                            output_path, strerror(errno));
+                   pg_fatal("could not open file \"%s\": %m", output_path);
 
                fprintf(script, "%s\n", datname);
            }
@@ -794,8 +793,7 @@ check_for_isn_and_int8_passing_mismatch(ClusterInfo *cluster)
        for (rowno = 0; rowno < ntups; rowno++)
        {
            if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
-               pg_fatal("could not open file \"%s\": %s",
-                        output_path, strerror(errno));
+               pg_fatal("could not open file \"%s\": %m", output_path);
            if (!db_used)
            {
                fprintf(script, "In database: %s\n", active_db->db_name);
@@ -889,8 +887,7 @@ check_for_user_defined_postfix_ops(ClusterInfo *cluster)
        {
            if (script == NULL &&
                (script = fopen_priv(output_path, "w")) == NULL)
-               pg_fatal("could not open file \"%s\": %s",
-                        output_path, strerror(errno));
+               pg_fatal("could not open file \"%s\": %m", output_path);
            if (!db_used)
            {
                fprintf(script, "In database: %s\n", active_db->db_name);
@@ -1018,8 +1015,7 @@ check_for_incompatible_polymorphics(ClusterInfo *cluster)
        {
            if (script == NULL &&
                (script = fopen_priv(output_path, "w")) == NULL)
-               pg_fatal("could not open file \"%s\": %s",
-                        output_path, strerror(errno));
+               pg_fatal("could not open file \"%s\": %m", output_path);
            if (!db_used)
            {
                fprintf(script, "In database: %s\n", active_db->db_name);
@@ -1095,8 +1091,7 @@ check_for_tables_with_oids(ClusterInfo *cluster)
        for (rowno = 0; rowno < ntups; rowno++)
        {
            if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
-               pg_fatal("could not open file \"%s\": %s",
-                        output_path, strerror(errno));
+               pg_fatal("could not open file \"%s\": %m", output_path);
            if (!db_used)
            {
                fprintf(script, "In database: %s\n", active_db->db_name);
@@ -1374,8 +1369,7 @@ check_for_pg_role_prefix(ClusterInfo *cluster)
    for (int rowno = 0; rowno < ntups; rowno++)
    {
        if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
-           pg_fatal("could not open file \"%s\": %s",
-                    output_path, strerror(errno));
+           pg_fatal("could not open file \"%s\": %m", output_path);
        fprintf(script, "%s (oid=%s)\n",
                PQgetvalue(res, rowno, i_rolname),
                PQgetvalue(res, rowno, i_roloid));
@@ -1448,8 +1442,7 @@ check_for_user_defined_encoding_conversions(ClusterInfo *cluster)
        {
            if (script == NULL &&
                (script = fopen_priv(output_path, "w")) == NULL)
-               pg_fatal("could not open file \"%s\": %s",
-                        output_path, strerror(errno));
+               pg_fatal("could not open file \"%s\": %m", output_path);
            if (!db_used)
            {
                fprintf(script, "In database: %s\n", active_db->db_name);
@@ -1631,8 +1624,7 @@ check_old_cluster_for_valid_slots(bool live_check)
            {
                if (script == NULL &&
                    (script = fopen_priv(output_path, "w")) == NULL)
-                   pg_fatal("could not open file \"%s\": %s",
-                            output_path, strerror(errno));
+                   pg_fatal("could not open file \"%s\": %m", output_path);
 
                fprintf(script, "The slot \"%s\" is invalid\n",
                        slot->slotname);
@@ -1651,8 +1643,7 @@ check_old_cluster_for_valid_slots(bool live_check)
            {
                if (script == NULL &&
                    (script = fopen_priv(output_path, "w")) == NULL)
-                   pg_fatal("could not open file \"%s\": %s",
-                            output_path, strerror(errno));
+                   pg_fatal("could not open file \"%s\": %m", output_path);
 
                fprintf(script,
                        "The slot \"%s\" has not consumed the WAL yet\n",
@@ -1721,8 +1712,7 @@ check_old_cluster_subscription_state(void)
            for (int i = 0; i < ntup; i++)
            {
                if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
-                   pg_fatal("could not open file \"%s\": %s",
-                            output_path, strerror(errno));
+                   pg_fatal("could not open file \"%s\": %m", output_path);
                fprintf(script, "The replication origin is missing for database:\"%s\" subscription:\"%s\"\n",
                        PQgetvalue(res, i, 0),
                        PQgetvalue(res, i, 1));
@@ -1774,8 +1764,7 @@ check_old_cluster_subscription_state(void)
        for (int i = 0; i < ntup; i++)
        {
            if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
-               pg_fatal("could not open file \"%s\": %s",
-                        output_path, strerror(errno));
+               pg_fatal("could not open file \"%s\": %m", output_path);
 
            fprintf(script, "The table sync state \"%s\" is not allowed for database:\"%s\" subscription:\"%s\" schema:\"%s\" relation:\"%s\"\n",
                    PQgetvalue(res, i, 0),
index d10e31426d1c2acf7f7d1d15cf7c288e795c66e8..3c836c7c132f79ea10e07bcffd3bc1eb800f9eef 100644 (file)
@@ -126,8 +126,7 @@ get_control_data(ClusterInfo *cluster, bool live_check)
        fflush(NULL);
 
        if ((output = popen(cmd, "r")) == NULL)
-           pg_fatal("could not get control data using %s: %s",
-                    cmd, strerror(errno));
+           pg_fatal("could not get control data using %s: %m", cmd);
 
        /* we have the result of cmd in "output". so parse it line by line now */
        while (fgets(bufin, sizeof(bufin), output))
@@ -197,8 +196,7 @@ get_control_data(ClusterInfo *cluster, bool live_check)
    fflush(NULL);
 
    if ((output = popen(cmd, "r")) == NULL)
-       pg_fatal("could not get control data using %s: %s",
-                cmd, strerror(errno));
+       pg_fatal("could not get control data using %s: %m", cmd);
 
    /* Only in <= 9.2 */
    if (GET_MAJOR_VERSION(cluster->major_version) <= 902)
index 3552cf00afbf794fdb13d4c465b8de2361634c27..058530ab3e9e677091dc45c7889081bcc712007b 100644 (file)
@@ -44,8 +44,7 @@ get_bin_version(ClusterInfo *cluster)
 
    if ((output = popen(cmd, "r")) == NULL ||
        fgets(cmd_output, sizeof(cmd_output), output) == NULL)
-       pg_fatal("could not get pg_ctl version data using %s: %s",
-                cmd, strerror(errno));
+       pg_fatal("could not get pg_ctl version data using %s: %m", cmd);
 
    rc = pclose(output);
    if (rc != 0)
@@ -242,8 +241,7 @@ pid_lock_file_exists(const char *datadir)
    {
        /* ENOTDIR means we will throw a more useful error later */
        if (errno != ENOENT && errno != ENOTDIR)
-           pg_fatal("could not open file \"%s\" for reading: %s",
-                    path, strerror(errno));
+           pg_fatal("could not open file \"%s\" for reading: %m", path);
 
        return false;
    }
@@ -322,8 +320,8 @@ check_single_dir(const char *pg_data, const char *subdir)
             subdir);
 
    if (stat(subDirName, &statBuf) != 0)
-       report_status(PG_FATAL, "check for \"%s\" failed: %s",
-                     subDirName, strerror(errno));
+       report_status(PG_FATAL, "check for \"%s\" failed: %m",
+                     subDirName);
    else if (!S_ISDIR(statBuf.st_mode))
        report_status(PG_FATAL, "\"%s\" is not a directory",
                      subDirName);
@@ -388,8 +386,8 @@ check_bin_dir(ClusterInfo *cluster, bool check_versions)
 
    /* check bindir */
    if (stat(cluster->bindir, &statBuf) != 0)
-       report_status(PG_FATAL, "check for \"%s\" failed: %s",
-                     cluster->bindir, strerror(errno));
+       report_status(PG_FATAL, "check for \"%s\" failed: %m",
+                     cluster->bindir);
    else if (!S_ISDIR(statBuf.st_mode))
        report_status(PG_FATAL, "\"%s\" is not a directory",
                      cluster->bindir);
index beba376f2eecf56b34f9160374ab5176458feb5c..73932504caefa59d3ef759b77633f15848f80ade 100644 (file)
@@ -41,20 +41,20 @@ cloneFile(const char *src, const char *dst,
 {
 #if defined(HAVE_COPYFILE) && defined(COPYFILE_CLONE_FORCE)
    if (copyfile(src, dst, NULL, COPYFILE_CLONE_FORCE) < 0)
-       pg_fatal("error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %s",
-                schemaName, relName, src, dst, strerror(errno));
+       pg_fatal("error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %m",
+                schemaName, relName, src, dst);
 #elif defined(__linux__) && defined(FICLONE)
    int         src_fd;
    int         dest_fd;
 
    if ((src_fd = open(src, O_RDONLY | PG_BINARY, 0)) < 0)
-       pg_fatal("error while cloning relation \"%s.%s\": could not open file \"%s\": %s",
-                schemaName, relName, src, strerror(errno));
+       pg_fatal("error while cloning relation \"%s.%s\": could not open file \"%s\": %m",
+                schemaName, relName, src);
 
    if ((dest_fd = open(dst, O_RDWR | O_CREAT | O_EXCL | PG_BINARY,
                        pg_file_create_mode)) < 0)
-       pg_fatal("error while cloning relation \"%s.%s\": could not create file \"%s\": %s",
-                schemaName, relName, dst, strerror(errno));
+       pg_fatal("error while cloning relation \"%s.%s\": could not create file \"%s\": %m",
+                schemaName, relName, dst);
 
    if (ioctl(dest_fd, FICLONE, src_fd) < 0)
    {
@@ -88,13 +88,13 @@ copyFile(const char *src, const char *dst,
    char       *buffer;
 
    if ((src_fd = open(src, O_RDONLY | PG_BINARY, 0)) < 0)
-       pg_fatal("error while copying relation \"%s.%s\": could not open file \"%s\": %s",
-                schemaName, relName, src, strerror(errno));
+       pg_fatal("error while copying relation \"%s.%s\": could not open file \"%s\": %m",
+                schemaName, relName, src);
 
    if ((dest_fd = open(dst, O_RDWR | O_CREAT | O_EXCL | PG_BINARY,
                        pg_file_create_mode)) < 0)
-       pg_fatal("error while copying relation \"%s.%s\": could not create file \"%s\": %s",
-                schemaName, relName, dst, strerror(errno));
+       pg_fatal("error while copying relation \"%s.%s\": could not create file \"%s\": %m",
+                schemaName, relName, dst);
 
    /* copy in fairly large chunks for best efficiency */
 #define COPY_BUF_SIZE (50 * BLCKSZ)
@@ -107,8 +107,8 @@ copyFile(const char *src, const char *dst,
        ssize_t     nbytes = read(src_fd, buffer, COPY_BUF_SIZE);
 
        if (nbytes < 0)
-           pg_fatal("error while copying relation \"%s.%s\": could not read file \"%s\": %s",
-                    schemaName, relName, src, strerror(errno));
+           pg_fatal("error while copying relation \"%s.%s\": could not read file \"%s\": %m",
+                    schemaName, relName, src);
 
        if (nbytes == 0)
            break;
@@ -119,8 +119,8 @@ copyFile(const char *src, const char *dst,
            /* if write didn't set errno, assume problem is no disk space */
            if (errno == 0)
                errno = ENOSPC;
-           pg_fatal("error while copying relation \"%s.%s\": could not write file \"%s\": %s",
-                    schemaName, relName, dst, strerror(errno));
+           pg_fatal("error while copying relation \"%s.%s\": could not write file \"%s\": %m",
+                    schemaName, relName, dst);
        }
    }
 
@@ -133,8 +133,8 @@ copyFile(const char *src, const char *dst,
    if (CopyFile(src, dst, true) == 0)
    {
        _dosmaperr(GetLastError());
-       pg_fatal("error while copying relation \"%s.%s\" (\"%s\" to \"%s\"): %s",
-                schemaName, relName, src, dst, strerror(errno));
+       pg_fatal("error while copying relation \"%s.%s\" (\"%s\" to \"%s\"): %m",
+                schemaName, relName, src, dst);
    }
 
 #endif                         /* WIN32 */
@@ -157,20 +157,20 @@ copyFileByRange(const char *src, const char *dst,
    ssize_t     nbytes;
 
    if ((src_fd = open(src, O_RDONLY | PG_BINARY, 0)) < 0)
-       pg_fatal("error while copying relation \"%s.%s\": could not open file \"%s\": %s",
-                schemaName, relName, src, strerror(errno));
+       pg_fatal("error while copying relation \"%s.%s\": could not open file \"%s\": %m",
+                schemaName, relName, src);
 
    if ((dest_fd = open(dst, O_RDWR | O_CREAT | O_EXCL | PG_BINARY,
                        pg_file_create_mode)) < 0)
-       pg_fatal("error while copying relation \"%s.%s\": could not create file \"%s\": %s",
-                schemaName, relName, dst, strerror(errno));
+       pg_fatal("error while copying relation \"%s.%s\": could not create file \"%s\": %m",
+                schemaName, relName, dst);
 
    do
    {
        nbytes = copy_file_range(src_fd, NULL, dest_fd, NULL, SSIZE_MAX, 0);
        if (nbytes < 0)
-           pg_fatal("error while copying relation \"%s.%s\": could not copy file range from \"%s\" to \"%s\": %s",
-                    schemaName, relName, src, dst, strerror(errno));
+           pg_fatal("error while copying relation \"%s.%s\": could not copy file range from \"%s\" to \"%s\": %m",
+                    schemaName, relName, src, dst);
    }
    while (nbytes > 0);
 
@@ -191,8 +191,8 @@ linkFile(const char *src, const char *dst,
         const char *schemaName, const char *relName)
 {
    if (link(src, dst) < 0)
-       pg_fatal("error while creating link for relation \"%s.%s\" (\"%s\" to \"%s\"): %s",
-                schemaName, relName, src, dst, strerror(errno));
+       pg_fatal("error while creating link for relation \"%s.%s\" (\"%s\" to \"%s\"): %m",
+                schemaName, relName, src, dst);
 }
 
 
@@ -230,17 +230,17 @@ rewriteVisibilityMap(const char *fromfile, const char *tofile,
    rewriteVmBytesPerPage = (BLCKSZ - SizeOfPageHeaderData) / 2;
 
    if ((src_fd = open(fromfile, O_RDONLY | PG_BINARY, 0)) < 0)
-       pg_fatal("error while copying relation \"%s.%s\": could not open file \"%s\": %s",
-                schemaName, relName, fromfile, strerror(errno));
+       pg_fatal("error while copying relation \"%s.%s\": could not open file \"%s\": %m",
+                schemaName, relName, fromfile);
 
    if (fstat(src_fd, &statbuf) != 0)
-       pg_fatal("error while copying relation \"%s.%s\": could not stat file \"%s\": %s",
-                schemaName, relName, fromfile, strerror(errno));
+       pg_fatal("error while copying relation \"%s.%s\": could not stat file \"%s\": %m",
+                schemaName, relName, fromfile);
 
    if ((dst_fd = open(tofile, O_RDWR | O_CREAT | O_EXCL | PG_BINARY,
                       pg_file_create_mode)) < 0)
-       pg_fatal("error while copying relation \"%s.%s\": could not create file \"%s\": %s",
-                schemaName, relName, tofile, strerror(errno));
+       pg_fatal("error while copying relation \"%s.%s\": could not create file \"%s\": %m",
+                schemaName, relName, tofile);
 
    /* Save old file size */
    src_filesize = statbuf.st_size;
@@ -263,8 +263,8 @@ rewriteVisibilityMap(const char *fromfile, const char *tofile,
        if ((bytesRead = read(src_fd, buffer.data, BLCKSZ)) != BLCKSZ)
        {
            if (bytesRead < 0)
-               pg_fatal("error while copying relation \"%s.%s\": could not read file \"%s\": %s",
-                        schemaName, relName, fromfile, strerror(errno));
+               pg_fatal("error while copying relation \"%s.%s\": could not read file \"%s\": %m",
+                        schemaName, relName, fromfile);
            else
                pg_fatal("error while copying relation \"%s.%s\": partial page found in file \"%s\"",
                         schemaName, relName, fromfile);
@@ -341,8 +341,8 @@ rewriteVisibilityMap(const char *fromfile, const char *tofile,
                /* if write didn't set errno, assume problem is no disk space */
                if (errno == 0)
                    errno = ENOSPC;
-               pg_fatal("error while copying relation \"%s.%s\": could not write file \"%s\": %s",
-                        schemaName, relName, tofile, strerror(errno));
+               pg_fatal("error while copying relation \"%s.%s\": could not write file \"%s\": %m",
+                        schemaName, relName, tofile);
            }
 
            /* Advance for next new page */
@@ -368,25 +368,23 @@ check_file_clone(void)
 
 #if defined(HAVE_COPYFILE) && defined(COPYFILE_CLONE_FORCE)
    if (copyfile(existing_file, new_link_file, NULL, COPYFILE_CLONE_FORCE) < 0)
-       pg_fatal("could not clone file between old and new data directories: %s",
-                strerror(errno));
+       pg_fatal("could not clone file between old and new data directories: %m");
 #elif defined(__linux__) && defined(FICLONE)
    {
        int         src_fd;
        int         dest_fd;
 
        if ((src_fd = open(existing_file, O_RDONLY | PG_BINARY, 0)) < 0)
-           pg_fatal("could not open file \"%s\": %s",
-                    existing_file, strerror(errno));
+           pg_fatal("could not open file \"%s\": %m",
+                    existing_file);
 
        if ((dest_fd = open(new_link_file, O_RDWR | O_CREAT | O_EXCL | PG_BINARY,
                            pg_file_create_mode)) < 0)
-           pg_fatal("could not create file \"%s\": %s",
-                    new_link_file, strerror(errno));
+           pg_fatal("could not create file \"%s\": %m",
+                    new_link_file);
 
        if (ioctl(dest_fd, FICLONE, src_fd) < 0)
-           pg_fatal("could not clone file between old and new data directories: %s",
-                    strerror(errno));
+           pg_fatal("could not clone file between old and new data directories: %m");
 
        close(src_fd);
        close(dest_fd);
@@ -414,17 +412,16 @@ check_copy_file_range(void)
        int         dest_fd;
 
        if ((src_fd = open(existing_file, O_RDONLY | PG_BINARY, 0)) < 0)
-           pg_fatal("could not open file \"%s\": %s",
-                    existing_file, strerror(errno));
+           pg_fatal("could not open file \"%s\": %m",
+                    existing_file);
 
        if ((dest_fd = open(new_link_file, O_RDWR | O_CREAT | O_EXCL | PG_BINARY,
                            pg_file_create_mode)) < 0)
-           pg_fatal("could not create file \"%s\": %s",
-                    new_link_file, strerror(errno));
+           pg_fatal("could not create file \"%s\": %m",
+                    new_link_file);
 
        if (copy_file_range(src_fd, NULL, dest_fd, NULL, SSIZE_MAX, 0) < 0)
-           pg_fatal("could not copy file range between old and new data directories: %s",
-                    strerror(errno));
+           pg_fatal("could not copy file range between old and new data directories: %m");
 
        close(src_fd);
        close(dest_fd);
@@ -447,9 +444,8 @@ check_hard_link(void)
    unlink(new_link_file);      /* might fail */
 
    if (link(existing_file, new_link_file) < 0)
-       pg_fatal("could not create hard link between old and new data directories: %s\n"
-                "In link mode the old and new data directories must be on the same file system.",
-                strerror(errno));
+       pg_fatal("could not create hard link between old and new data directories: %m\n"
+                "In link mode the old and new data directories must be on the same file system.");
 
    unlink(new_link_file);
 }
index d65153de81910d8931736126b406e54a9aef1181..7e3abed0985d5b11950de9a154c68c4f085a42eb 100644 (file)
@@ -186,8 +186,7 @@ check_loadable_libraries(void)
                was_load_failure = true;
 
                if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
-                   pg_fatal("could not open file \"%s\": %s",
-                            output_path, strerror(errno));
+                   pg_fatal("could not open file \"%s\": %m", output_path);
                fprintf(script, _("could not load library \"%s\": %s"),
                        lib,
                        PQerrorMessage(conn));
index 8949c58de80f99c532978813830deb951cf7944b..548ea4e62365635e9f6600cf10b3d8f5b37fade1 100644 (file)
@@ -445,8 +445,7 @@ adjust_data_dir(ClusterInfo *cluster)
 
    if ((output = popen(cmd, "r")) == NULL ||
        fgets(cmd_output, sizeof(cmd_output), output) == NULL)
-       pg_fatal("could not get data directory using %s: %s",
-                cmd, strerror(errno));
+       pg_fatal("could not get data directory using %s: %m", cmd);
 
    rc = pclose(output);
    if (rc != 0)
@@ -491,16 +490,15 @@ get_sock_dir(ClusterInfo *cluster, bool live_check)
        snprintf(filename, sizeof(filename), "%s/postmaster.pid",
                 cluster->pgdata);
        if ((fp = fopen(filename, "r")) == NULL)
-           pg_fatal("could not open file \"%s\": %s",
-                    filename, strerror(errno));
+           pg_fatal("could not open file \"%s\": %m", filename);
 
        for (lineno = 1;
             lineno <= Max(LOCK_FILE_LINE_PORT, LOCK_FILE_LINE_SOCKET_DIR);
             lineno++)
        {
            if (fgets(line, sizeof(line), fp) == NULL)
-               pg_fatal("could not read line %d from file \"%s\": %s",
-                        lineno, filename, strerror(errno));
+               pg_fatal("could not read line %d from file \"%s\": %m",
+                        lineno, filename);
 
            /* potentially overwrite user-supplied value */
            if (lineno == LOCK_FILE_LINE_PORT)
index ae15457a9d601c05dbec8f2b9b2f1ac03a701b1e..05313a9b156418f16d722df7b885056dda896ea3 100644 (file)
@@ -124,7 +124,7 @@ parallel_exec_prog(const char *log_file, const char *opt_log_file,
            _exit(!exec_prog(log_file, opt_log_file, true, true, "%s", cmd));
        else if (child < 0)
            /* fork failed */
-           pg_fatal("could not create worker process: %s", strerror(errno));
+           pg_fatal("could not create worker process: %m");
 #else
        /* empty array element are always at the end */
        new_arg = exec_thread_args[parallel_jobs - 1];
@@ -140,7 +140,7 @@ parallel_exec_prog(const char *log_file, const char *opt_log_file,
        child = (HANDLE) _beginthreadex(NULL, 0, (void *) win32_exec_prog,
                                        new_arg, 0, NULL);
        if (child == 0)
-           pg_fatal("could not create worker thread: %s", strerror(errno));
+           pg_fatal("could not create worker thread: %m");
 
        thread_handles[parallel_jobs - 1] = child;
 #endif
@@ -232,7 +232,7 @@ parallel_transfer_all_new_dbs(DbInfoArr *old_db_arr, DbInfoArr *new_db_arr,
        }
        else if (child < 0)
            /* fork failed */
-           pg_fatal("could not create worker process: %s", strerror(errno));
+           pg_fatal("could not create worker process: %m");
 #else
        /* empty array element are always at the end */
        new_arg = transfer_thread_args[parallel_jobs - 1];
@@ -250,7 +250,7 @@ parallel_transfer_all_new_dbs(DbInfoArr *old_db_arr, DbInfoArr *new_db_arr,
        child = (HANDLE) _beginthreadex(NULL, 0, (void *) win32_transfer_all_new_dbs,
                                        new_arg, 0, NULL);
        if (child == 0)
-           pg_fatal("could not create worker thread: %s", strerror(errno));
+           pg_fatal("could not create worker thread: %m");
 
        thread_handles[parallel_jobs - 1] = child;
 #endif
@@ -291,7 +291,7 @@ reap_child(bool wait_for_child)
 #ifndef WIN32
    child = waitpid(-1, &work_status, wait_for_child ? 0 : WNOHANG);
    if (child == (pid_t) -1)
-       pg_fatal("%s() failed: %s", "waitpid", strerror(errno));
+       pg_fatal("%s() failed: %m", "waitpid");
    if (child == 0)
        return false;           /* no children, or no dead children */
    if (work_status != 0)
@@ -310,7 +310,7 @@ reap_child(bool wait_for_child)
    /* get the result */
    GetExitCodeThread(thread_handles[thread_num], &res);
    if (res != 0)
-       pg_fatal("child worker exited abnormally: %s", strerror(errno));
+       pg_fatal("child worker exited abnormally: %m");
 
    /* dispose of handle to stop leaks */
    CloseHandle(thread_handles[thread_num]);
index bb261353bdd177c46a885942d78a831b77c5f571..f6143b6bc475fdc4c1b070a16e68148279480afe 100644 (file)
@@ -105,8 +105,8 @@ main(int argc, char **argv)
     * output directories with correct permissions.
     */
    if (!GetDataDirectoryCreatePerm(new_cluster.pgdata))
-       pg_fatal("could not read permissions of directory \"%s\": %s",
-                new_cluster.pgdata, strerror(errno));
+       pg_fatal("could not read permissions of directory \"%s\": %m",
+                new_cluster.pgdata);
 
    umask(pg_mode_mask);
 
index a1fc5fec78d8b63f0d489765b57fd1f778e191b6..1d3054d78bdb10efbc664c8757a930a39f3b986f 100644 (file)
@@ -218,9 +218,8 @@ transfer_relfile(FileNameMap *map, const char *type_suffix, bool vm_must_add_fro
                if (errno == ENOENT)
                    return;
                else
-                   pg_fatal("error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %s",
-                            map->nspname, map->relname, old_file, new_file,
-                            strerror(errno));
+                   pg_fatal("error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %m",
+                            map->nspname, map->relname, old_file, new_file);
            }
 
            /* If file is empty, just return */
index 4602873219799639a16a156301993779c5673f02..043e5e721bd344eaf8ba0a02738a559933011eec 100644 (file)
@@ -84,8 +84,8 @@ get_tablespace_paths(void)
                              os_info.old_tablespaces[tblnum]);
            else
                report_status(PG_FATAL,
-                             "could not stat tablespace directory \"%s\": %s",
-                             os_info.old_tablespaces[tblnum], strerror(errno));
+                             "could not stat tablespace directory \"%s\": %m",
+                             os_info.old_tablespaces[tblnum]);
        }
        if (!S_ISDIR(statBuf.st_mode))
            report_status(PG_FATAL,
index 13b2c0f01283e421754eec52ec2ed4c98fa49171..9dc1399f36888cb82229d9248599d687bbf86d43 100644 (file)
@@ -113,8 +113,7 @@ check_for_data_types_usage(ClusterInfo *cluster,
        {
            found = true;
            if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
-               pg_fatal("could not open file \"%s\": %s", output_path,
-                        strerror(errno));
+               pg_fatal("could not open file \"%s\": %m", output_path);
            if (!db_used)
            {
                fprintf(script, "In database: %s\n", active_db->db_name);
@@ -289,8 +288,7 @@ old_9_6_invalidate_hash_indexes(ClusterInfo *cluster, bool check_mode)
            if (!check_mode)
            {
                if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
-                   pg_fatal("could not open file \"%s\": %s", output_path,
-                            strerror(errno));
+                   pg_fatal("could not open file \"%s\": %m", output_path);
                if (!db_used)
                {
                    PQExpBufferData connectbuf;
@@ -423,8 +421,7 @@ report_extension_updates(ClusterInfo *cluster)
        for (rowno = 0; rowno < ntups; rowno++)
        {
            if (script == NULL && (script = fopen_priv(output_path, "w")) == NULL)
-               pg_fatal("could not open file \"%s\": %s", output_path,
-                        strerror(errno));
+               pg_fatal("could not open file \"%s\": %m", output_path);
            if (!db_used)
            {
                PQExpBufferData connectbuf;
index 147a695c8609ed8a8d3b81cb9fd0005325866501..a063fd26d51a236a61575d8e5c48a55a64b371ae 100644 (file)
@@ -115,8 +115,8 @@ pvsnprintf(char *buf, size_t len, const char *fmt, va_list args)
 #ifndef FRONTEND
        elog(ERROR, "vsnprintf failed: %m with format string \"%s\"", fmt);
 #else
-       fprintf(stderr, "vsnprintf failed: %s with format string \"%s\"\n",
-               strerror(errno), fmt);
+       fprintf(stderr, "vsnprintf failed: %m with format string \"%s\"\n",
+               fmt);
        exit(EXIT_FAILURE);
 #endif
    }
index e4db21e0c16916e9494669cfdafca8d9265c510a..93e66fc60f0339d1c6e171495bfdee494699af7a 100644 (file)
@@ -216,8 +216,8 @@ main(int argc, char *const argv[])
 
                if (base_yyout == NULL)
                {
-                   fprintf(stderr, _("%s: could not open file \"%s\": %s\n"),
-                           progname, output_filename, strerror(errno));
+                   fprintf(stderr, _("%s: could not open file \"%s\": %m\n"),
+                           progname, output_filename);
                    output_filename = NULL;
                }
                else
@@ -331,8 +331,8 @@ main(int argc, char *const argv[])
                    base_yyout = fopen(output_filename, PG_BINARY_W);
                    if (base_yyout == NULL)
                    {
-                       fprintf(stderr, _("%s: could not open file \"%s\": %s\n"),
-                               progname, output_filename, strerror(errno));
+                       fprintf(stderr, _("%s: could not open file \"%s\": %m\n"),
+                               progname, output_filename);
                        free(output_filename);
                        output_filename = NULL;
                        free(input_filename);
@@ -342,8 +342,8 @@ main(int argc, char *const argv[])
            }
 
            if (base_yyin == NULL)
-               fprintf(stderr, _("%s: could not open file \"%s\": %s\n"),
-                       progname, argv[fnr], strerror(errno));
+               fprintf(stderr, _("%s: could not open file \"%s\": %m\n"),
+                       progname, argv[fnr]);
            else
            {
                struct cursor *ptr;
index 565871c637694fd1b9046c8e14d8f28375f8e76d..330b3f90332b0495c6ce7dd994c854614a5a81e3 100644 (file)
@@ -772,8 +772,7 @@ make_absolute_path(const char *path)
 #ifndef FRONTEND
                elog(ERROR, "could not get current working directory: %m");
 #else
-               fprintf(stderr, _("could not get current working directory: %s\n"),
-                       strerror(errno));
+               fprintf(stderr, _("could not get current working directory: %m\n"));
                return NULL;
 #endif
            }
index 0a66235153aab85821c3922a2a614c9439b65f9f..ed110f740f1f5e7ba8f1b13aa2847f587da72ea0 100644 (file)
@@ -871,7 +871,7 @@ try_complete_step(TestSpec *testspec, PermutationStep *pstep, int flags)
        {
            if (errno == EINTR)
                continue;
-           fprintf(stderr, "select failed: %s\n", strerror(errno));
+           fprintf(stderr, "select failed: %m\n");
            exit(1);
        }
        else if (ret == 0)      /* select() timeout: check for lock wait */
index 97f8febf929859fea0b9c0a4b32661a0e362f14f..c6c7b1c3a17236260f7cee5afcd30c6dd0611d56 100644 (file)
@@ -492,7 +492,7 @@ test_nosync(PGconn *conn)
        tv.tv_usec = 0;
        if (select(sock + 1, &input_mask, NULL, NULL, &tv) < 0)
        {
-           fprintf(stderr, "select() failed: %s\n", strerror(errno));
+           fprintf(stderr, "select() failed: %m\n");
            exit_nicely(conn);
        }
        if (FD_ISSET(sock, &input_mask) && PQconsumeInput(conn) != 1)
@@ -943,7 +943,7 @@ test_pipelined_insert(PGconn *conn, int n_rows)
 
        if (select(sock + 1, &input_mask, &output_mask, NULL, NULL) < 0)
        {
-           fprintf(stderr, "select() failed: %s\n", strerror(errno));
+           fprintf(stderr, "select() failed: %m\n");
            exit_nicely(conn);
        }
 
index b9a1b7b5e84ec5362b01b803dd5065fdf095ce0b..a1037e1b571a9dbf5988c0c8edee4e268a4db023 100644 (file)
@@ -66,6 +66,6 @@ main(int argc, char *argv[])
 #endif
 
    if (pg_foreach_ifaddr(callback, NULL) < 0)
-       fprintf(stderr, "pg_foreach_ifaddr failed: %s\n", strerror(errno));
+       fprintf(stderr, "pg_foreach_ifaddr failed: %m\n");
    return 0;
 }