Am 05.09.20 um 23:10 schrieb Yonggang Luo: > On Windows there is no path like /tmp/s_local_disk.XXXXXX > > Signed-off-by: Yonggang Luo <luoyongg...@gmail.com> > --- > tests/test-replication.c | 13 +++++++++---- > 1 file changed, 9 insertions(+), 4 deletions(-) > > diff --git a/tests/test-replication.c b/tests/test-replication.c > index 9ab3666a90..3cf544a133 100644 > --- a/tests/test-replication.c > +++ b/tests/test-replication.c > @@ -23,14 +23,14 @@ > > /* primary */ > #define P_ID "primary-id" > -static char p_local_disk[] = "/tmp/p_local_disk.XXXXXX"; > +static char p_local_disk[PATH_MAX]; > > /* secondary */ > #define S_ID "secondary-id" > #define S_LOCAL_DISK_ID "secondary-local-disk-id" > -static char s_local_disk[] = "/tmp/s_local_disk.XXXXXX"; > -static char s_active_disk[] = "/tmp/s_active_disk.XXXXXX"; > -static char s_hidden_disk[] = "/tmp/s_hidden_disk.XXXXXX"; > +static char s_local_disk[PATH_MAX]; > +static char s_active_disk[PATH_MAX]; > +static char s_hidden_disk[PATH_MAX]; > > /* FIXME: steal from blockdev.c */ > QemuOptsList qemu_drive_opts = { > @@ -571,6 +571,11 @@ static void setup_sigabrt_handler(void) > int main(int argc, char **argv) > { > int ret; > + const char *tmpdir = g_get_tmp_dir(); > + sprintf(p_local_disk, "%s/p_local_disk.XXXXXX", tmpdir); > + sprintf(s_local_disk, "%s/s_local_disk.XXXXXX", tmpdir); > + sprintf(s_active_disk, "%s/s_active_disk.XXXXXX", tmpdir); > + sprintf(s_hidden_disk, "%s/s_hidden_disk.XXXXXX", tmpdir); > qemu_init_main_loop(&error_fatal); > bdrv_init(); >
Maybe it is possible to use get_tmp_filename() (which could be simplified by using g_get_tmp_dir). And please use snprintf instead of sprintf. I am afraid that a path can be longer than PATH_MAX, even if the tmpdir path is normally rather short. You could also allocate the different filenames dynamically instead of limiting them to PATH_MAX characters. Regards Stefan Weil