1 /* 2 * Copyright (c) 2006-2018, RT-Thread Development Team 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Change Logs: 7 * Date Author Notes 8 * 2015-01-28 Bernard first version 9 */ 10 11 #include <rtthread.h> 12 #ifdef RT_USING_DFS 13 #include <dfs_posix.h> 14 #endif 15 #include <yfuns.h> 16 #include "libc.h" 17 18 #pragma module_name = "?__write" 19 20 size_t __write(int handle, const unsigned char *buf, size_t len) 21 { 22 #ifdef RT_USING_DFS 23 int size; 24 #endif 25 26 if ((handle == _LLIO_STDOUT) || (handle == _LLIO_STDERR)) 27 { 28 #ifndef RT_USING_CONSOLE 29 return _LLIO_ERROR; 30 #else 31 32 #ifdef RT_USING_POSIX 33 return libc_stdio_write((void*)buf, len); 34 #else 35 rt_device_t console_device; 36 37 console_device = rt_console_get_device(); 38 if (console_device != 0) rt_device_write(console_device, 0, buf, len); 39 40 return len; 41 #endif 42 #endif 43 } 44 45 if (handle == _LLIO_STDIN) return _LLIO_ERROR; 46 47 #ifndef RT_USING_DFS 48 return _LLIO_ERROR; 49 #else 50 size = write(handle, buf, len); 51 return size; 52 #endif 53 } 54 55