8 #ifndef BOOST_NOWIDE_CSTDIO_H_INCLUDED
9 #define BOOST_NOWIDE_CSTDIO_H_INCLUDED
12 #include <boost/config.hpp>
13 #include <boost/nowide/convert.hpp>
14 #include <boost/nowide/stackstring.hpp>
18 # pragma warning(push)
19 # pragma warning(disable : 4996)
25 #if !defined(BOOST_WINDOWS) && !defined(BOOST_NOWIDE_DOXYGEN)
37 inline FILE *
freopen(
char const *file_name,
char const *mode,FILE *stream)
41 if(!wname.convert(file_name) || !wmode.convert(mode)) {
45 return _wfreopen(wname.c_str(),wmode.c_str(),stream);
52 inline FILE *
fopen(
char const *file_name,
char const *mode)
56 if(!wname.convert(file_name) || !wmode.convert(mode)) {
60 return _wfopen(wname.c_str(),wmode.c_str());
67 inline int rename(
char const *old_name,
char const *new_name)
70 if(!wold.convert(old_name) || !wnew.convert(new_name)) {
74 return _wrename(wold.c_str(),wnew.c_str());
81 inline int remove(
char const *name)
84 if(!wname.convert(name)) {
88 return _wremove(wname.c_str());
int rename(char const *old_name, char const *new_name)
Same as rename but old_name and new_name are UTF-8 strings.
Definition: cstdio.hpp:67
FILE * freopen(char const *file_name, char const *mode, FILE *stream)
Same as freopen but file_name and mode are UTF-8 strings.
Definition: cstdio.hpp:37
FILE * fopen(char const *file_name, char const *mode)
Same as fopen but file_name and mode are UTF-8 strings.
Definition: cstdio.hpp:52
A class that allows to create a temporary wide or narrow UTF strings from wide or narrow UTF source...
Definition: stackstring.hpp:25