[alsa-devel] [PATCH] aplay: Fix error message when writing captured data
Write can return less then requested bytes, but we treat this as an error.
Anyhow, errno is not updated in this case and we can end up with a confusing error message.
For example, when there is no room to write data into the output file we receive:
$ arecord -d 2000 -c 2 -r 192000 -f S16_LE -Dplughw:0,0 audio.wav Recording WAVE '/mnt/msc/audio.wav' : Signed 16 bit Little Endian, Rate 192000 Hz, Stereo audio.wav: No such file or directory
Signed-off-by: Daniel Baluta daniel.baluta@nxp.com --- aplay/aplay.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/aplay/aplay.c b/aplay/aplay.c index ee480f2..9547d1b 100644 --- a/aplay/aplay.c +++ b/aplay/aplay.c @@ -3079,7 +3079,7 @@ static void capture(char *orig_name) break; } if (write(fd, audiobuf, c) != c) { - perror(name); + fprintf(stderr, "Couldn't write all data to %s\n", name); in_aborting = 1; break; }
Hi,
On Apr 7 2017 21:14, Daniel Baluta wrote:
Write can return less then requested bytes, but we treat this as an error.
Anyhow, errno is not updated in this case and we can end up with a confusing error message.
For example, when there is no room to write data into the output file we receive:
$ arecord -d 2000 -c 2 -r 192000 -f S16_LE -Dplughw:0,0 audio.wav Recording WAVE '/mnt/msc/audio.wav' : Signed 16 bit Little Endian, Rate 192000 Hz, Stereo audio.wav: No such file or directory
Signed-off-by: Daniel Baluta daniel.baluta@nxp.com
aplay/aplay.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/aplay/aplay.c b/aplay/aplay.c index ee480f2..9547d1b 100644 --- a/aplay/aplay.c +++ b/aplay/aplay.c @@ -3079,7 +3079,7 @@ static void capture(char *orig_name) break; } if (write(fd, audiobuf, c) != c) {
perror(name);
fprintf(stderr, "Couldn't write all data to %s\n", name); in_aborting = 1; break; }
I agree with this change.
A small nitpicking. This utility supports i18n with gettext. Let us use gettext alias to the message?
$ cd alsa-utils/aplay $ git grep fprintf( | wc 57 387 3939 $ git grep fprintf( | grep _( | wc 37 260 2570
Regards
Takashi Sakamoto
On Vi, 2017-04-07 at 21:56 +0900, Takashi Sakamoto wrote:
Hi,
On Apr 7 2017 21:14, Daniel Baluta wrote:
Write can return less then requested bytes, but we treat this as an error.
Anyhow, errno is not updated in this case and we can end up with a confusing error message.
For example, when there is no room to write data into the output file we receive:
$ arecord -d 2000 -c 2 -r 192000 -f S16_LE -Dplughw:0,0 audio.wav Recording WAVE '/mnt/msc/audio.wav' : Signed 16 bit Little Endian, Rate 192000 Hz, Stereo audio.wav: No such file or directory
Signed-off-by: Daniel Baluta daniel.baluta@nxp.com
aplay/aplay.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/aplay/aplay.c b/aplay/aplay.c index ee480f2..9547d1b 100644 --- a/aplay/aplay.c +++ b/aplay/aplay.c @@ -3079,7 +3079,7 @@ static void capture(char *orig_name) break; } if (write(fd, audiobuf, c) != c) {
perror(name);
fprintf(stderr, "Couldn't write
all data to %s\n", name); in_aborting = 1; break; }
I agree with this change.
A small nitpicking. This utility supports i18n with gettext. Let us use gettext alias to the message?
$ cd alsa-utils/aplay $ git grep fprintf( | wc 57 387 3939 $ git grep fprintf( | grep _( | wc 37 260 2570
Sure, will send v2. I didn't know about the gettext alias. :)
Daniel.
participants (2)
-
Daniel Baluta
-
Takashi Sakamoto