mirror of https://github.com/ARMmbed/mbed-os.git
On small targets there might be memory issues that lead to
failing on file allocation / opening during Stream creation. The consequence was application continues running, but any printf to the Serial object whose Stream was not properly created would not show any error (and characters would not show either) Let's add a check to properly inform user of the error.pull/4259/head
parent
f2a648d9e6
commit
4ad4b2a2ef
|
@ -14,6 +14,8 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
#include "platform/Stream.h"
|
||||
#include "platform/mbed_error.h"
|
||||
#include <errno.h>
|
||||
|
||||
namespace mbed {
|
||||
|
||||
|
@ -23,7 +25,11 @@ Stream::Stream(const char *name) : FileLike(name), _file(NULL) {
|
|||
char buf[12]; /* :0x12345678 + null byte */
|
||||
std::sprintf(buf, ":%p", this);
|
||||
_file = std::fopen(buf, "w+");
|
||||
if (_file) {
|
||||
mbed_set_unbuffered_stream(_file);
|
||||
} else {
|
||||
error("Stream obj failure, errno=%d\r\n", errno);
|
||||
}
|
||||
}
|
||||
|
||||
Stream::~Stream() {
|
||||
|
|
Loading…
Reference in New Issue