[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v1 2/8] migration: Don't use '#' flag of printf format
From: |
Bihong Yu |
Subject: |
Re: [PATCH v1 2/8] migration: Don't use '#' flag of printf format |
Date: |
Mon, 12 Oct 2020 20:45:41 +0800 |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 |
Thank you for your review. OK,I have fixed the problem in v2.
On 2020/10/12 2:19, Peter Maydell wrote:
> On Sun, 11 Oct 2020 at 14:52, Bihong Yu <yubihong@huawei.com> wrote:
>> @@ -998,7 +998,7 @@ static int block_load(QEMUFile *f, void *opaque, int
>> version_id)
>> (addr == 100) ? '\n' : '\r');
>> fflush(stdout);
>> } else if (!(flags & BLK_MIG_FLAG_EOS)) {
>> - fprintf(stderr, "Unknown block migration flags: %#x\n", flags);
>> + fprintf(stderr, "Unknown block migration flags: %0x\n", flags);
>
> This doesn't look right. "%#x" will print a number in hex with a leading '0x'.
> To get the same effect without using "#" you need "0x%x" (that is,
> the format string provides the 0x characters literally).
> What you've written is '%0x", which is a format string where the '0' is
> a request to print with zero padding (which is ignored since there's no
> field width given), so the result is the same as if you'd just said '%x',
> and there is no '0x' in the output.
>
> $ cat /tmp/zz9.c
> #include <stdio.h>
> int main(void) {
> printf("%#x\n", 42);
> printf("%0x\n", 42);
> printf("0x%x\n", 42);
> return 0;
> }
> $ gcc -g -Wall -o /tmp/zz9 /tmp/zz9.c
> $ /tmp/zz9
> 0x2a
> 2a
> 0x2a
>
>> default:
>> - error_report("Unknown combination of migration flags: %#x"
>> + error_report("Unknown combination of migration flags: %0x"
>> " (postcopy mode)", flags);
>> ret = -EINVAL;
>> break;
>> @@ -3576,7 +3576,7 @@ static int ram_load_precopy(QEMUFile *f)
>> if (flags & RAM_SAVE_FLAG_HOOK) {
>> ram_control_load_hook(f, RAM_CONTROL_HOOK, NULL);
>> } else {
>> - error_report("Unknown combination of migration flags: %#x",
>> + error_report("Unknown combination of migration flags: %0x",
>> flags);
>> ret = -EINVAL;
>> }
>
> These two similarly should be "0x%x".
>
> thanks
> -- PMM
> .
>
- [PATCH v1 5/8] migration: Add braces {} for if statement, (continued)
- [PATCH v1 5/8] migration: Add braces {} for if statement, Bihong Yu, 2020/10/11
- [PATCH v1 6/8] migration: Do not initialise statics and globals to 0 or NULL, Bihong Yu, 2020/10/11
- [PATCH v1 1/8] migration: Do not use C99 // comments, Bihong Yu, 2020/10/11
- [PATCH v1 4/8] migration: Open brace '{' following struct go on the same line, Bihong Yu, 2020/10/11
- Re: [PATCH v1 0/8] Fix some style problems in migration, no-reply, 2020/10/11
- [PATCH v1 0/8] Fix some style problems in migration, Bihong Yu, 2020/10/11
- [PATCH v1 7/8] migration: Open brace '{' following function declarations go on the next line, Bihong Yu, 2020/10/11
- [PATCH v1 6/8] migration: Do not initialise statics and globals to 0 or NULL, Bihong Yu, 2020/10/11
- [PATCH v1 1/8] migration: Do not use C99 // comments, Bihong Yu, 2020/10/11
- [PATCH v1 4/8] migration: Open brace '{' following struct go on the same line, Bihong Yu, 2020/10/11
- [PATCH v1 5/8] migration: Add braces {} for if statement, Bihong Yu, 2020/10/11
- Re: [PATCH v1 0/8] Fix some style problems in migration, no-reply, 2020/10/11