C 17? ?? ??? ?????? ?????
C 17? ?? ? ???? ??? ?????? ?? ???? ?? ????? ? <filesystem></filesystem>
?????? ?????. C 17 ??? ???? ????? ??? ?? API (? : POSIX ?? Windows API) ?? ?? ????? (? : ???)? ???? ?? ???? ?????. ?? std::filesystem
??? ???? ??? C ??? ?????? ?????.

std::filesystem
????? ??? ????.
- C 17? ???? ???? (? : GCC 8, Clang 7, MSVC 15.7)
- ?? ??
<filesystem></filesystem>
????? - ??? ??? ????? ?? (? : LIBSTDC FS)
?? ??? ????? ??? (??? ??)
GCC??? stdc fs
???? ???? ? ?? ????.

g -Std = C 17 Your_file.cpp -lstdc fs
Clang ? MSVC? ????? ???? ???? ??? ?? ?? ??? ???? ????.
?? ?? : ?? ?? ??
1. ??? ????? ???? ??? ?????.
#include <iostream> #include <filesystem> ?? ???? fs = std :: ?? ???; int main () { fs :: ?? p = "example.txt"; if (fs :: ensists (p)) { std :: cout << p << "?????. \ n"; if (fs :: is_regular_file (p)) { std :: cout << p << "?? ?????. \ n"; } else if (fs :: is_directory (p)) { std :: cout << p << "???? \ n"; } } ? ?? { std :: cout << p << "???? ????. \ n"; } ?? 0; }
2. ????? ????
if (fs :: create_directory ( "new_folder")) { std :: cout << "???? ??? ??????. \ n"; } ? ?? { std :: cout << "????? ?? ????? ???? ?????. \ n"; } // ??? ???? ?? (C 17? ?? ???? ??, ?? ?? C 20 Create_Directories) // ???? ?? ????. fs :: create_directories ( "dir/subdir/subsubdir"); // ?? ????? ???? ???? ?? ? ? ????.
?? :
create_directory()
?? ?? ???? ? ????create_directories()
?? ? ?? ?? ????? ????.
3. ????? ??? ?? ?????
FS :: PATH DIR = "."; for (const Auto & Entry : fs :: directory_iterator (dir)) { std :: cout << entry.path () << "\ n"; }
?? ??? ?? ????? ?? ???? recursive_directory_iterator
??????.
for (const Auto & Entry : fs :: recursive_directory_iterator (dir)) { std :: cout << entry.path () << "\ n"; }
?? ??? ??? ? ?? ????.
for (const Auto & Entry : fs :: directory_iterator (dir)) { if (Entrys.is_regular_file ()) { std :: cout << "?? :"<< entry.path (). filename () << "\ n"; } else if (entry.is_directory ()) { std :: cout << "directory :"<< entry.path (). filename () << "\ n"; } }
4. ?? ??? ????
if (fs :: is_regular_file (p)) { auto fsize = fs :: file_size (p); std :: cout << "?? ?? :"<< fsize << "byte \ n"; ?? ?? = fs :: last_write_time (p); // ?? : ??? file_time_type?? ??? ??? ????? (?? ??). }
file_time_type
? std::chrono
???? ??? ?? ??? ?? ??? ?? ? ?????.
#include <iomanip> // ??? ? ?? ?? (?? ???? ??) auto sctp = fs :: last_write_time (p); std :: time_t cftime = std :: chrono :: system_clock :: to_time_t ( std :: Chrono :: file_clock :: to_sys (sctp) ); std :: cout << "??? ?? ?? :"<< std :: put_time (std :: localtime (& cftime), "%y-%m-%d%h :%m :%s") << "\ n";
?? :
std::put_time
?? ???? (? : ?? ??? GCC)??-std=c 20
????? ? ?? ????.
5. ?? ?? ?? ? ??
fs :: Rename ( "Old_name.txt", "new_name.txt"); fs :: ?? ( "dontanted_file.txt"); // ?? ?? ?? fs :: remove_all ( "some_directory"); // ????? ? ??? ?????
6. ?? ??
fs::path
??? ??? ?? ??? ???? ?? ??????.
fs :: Path P = "/home/user/documents/report.txt"; std :: cout << "?? ?? :"<< p.root_path () << "\ n"; // / ?? C : \ std :: cout << "?? ???? :"<< p.parent_path () << "\ n"; ///?/???/?? std :: cout << "filename :"<< p.filename () << "\ n"; // report.txt std :: cout << "?? :"<< p.extension () << "\ n"; // .txt std :: cout << "?? ?? ?? ?? :"<< p.stem () << "\ n"; // ??? // ? ??? ? ?? fs :: path p2 = "/ home/ user"/ "documents"/ "file.txt"; std :: cout << "?? ?? :"<< p2 << "\ n";
/
???? ??? ??? ??????? ?? ?? /
\
? ??? ?? ???? ????.
???? ?? ?? ??
- ?? ??? ??? : Windows??? UTF-8 ??? ???? ???? ?? ????. ??? ??? ??? ??? ? ????. ?? ??? ?? ??? ???? ???? (?? ???? ??? ??? ??? ?).
- ?? ?? : ????
filesystem
??? ??? ?? ? ? ???,?? try-catch? ????? ?? ????.
???? { fs :: create_directory ( "test_dir"); } catch (const fs :: fileSystem_error & e) { std :: cerr << "?? ??? ?? :"<< e.what () << "\ n"; }
- ?? ?? : ? ????? ?? ?? ??
directory_iterator
????? ?? ???status()
??file_size()
? ?? ??? ??? ??? ??? ? ? ????.
??? ? : ?? ????? ?? .cpp
??? ?????.
#include <iostream> #include <filesystem> ?? ???? fs = std :: ?? ???; int main () { for (const Auto & Entry : fs :: directory_iterator ( ".")) { if (Entrys.is_regular_file () && entry.path (). Extension () == ".cpp") { std :: cout << enlic.path (). filename () << "\ n"; } } ?? 0; }
????? ?? ??. std::filesystem
C ?? ??? ???? ???? ??? ????? ????. Python? os.path
?? pathlib
?? ????? ??? ?? C ??????? ?? ??? ?????.
????? ??? ??? ?? ??? ???? ?? ?? ????? ? ??? ???? ?? ????.
? ??? C ?? ??? ????? ???? C 17? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

STD :: Chrono? ?? ?? ??, ?? ?? ??, ?? ?? ? ?? ?? ? ?? ?? ??? ???? C?? ???? ??? ?????. 1. std :: chrono :: system_clock :: now ()? ???? ?? ??? ?? ? ??? ?? ??? ???? ?? ? ? ??? ??? ??? ???? ?? ?? ? ????. 2. std :: Chrono :: steady_clock? ???? ?? ??? ???? ?? ??? ???? duration_cast? ?? ?? ?, ? ? ?? ??? ??????. 3. ?? (time_point) ? ?? (??)? ?? ??? ? ? ??? ?? ??? ? ?? epoch (epoch)???? ???????.

C : 1?? ?? ????? ?? ??? ?? ??? ????. Linux ????? Backtrace ? Backtrace_symbols ??? ??????. ?? ?? ? ?? ?? ??? ???? ??? ? ? -rdynamic ?? ??? ???????. 2. Windows ????? CaptUreStackBackTrace ??? ???? DBGHELP.LIB? ???? PDB ??? ???? ?? ??? ?? ???????. 3. GoogleBreakPad ?? Boost.StackTrace? ?? ?? ?????? ???? ?? ??? ? ?? ?? ??? ??????. 4. ?? ???? ?? ??? ???? ?? ???? ?? ??? ???? ?????.

C??, POD (PANDALDATA) ??? ??? ??? ?? ??? ???? C ?? ??? ??? ?????. ??? ? ?? ??? ????????. ??? ??? ?? ???? ???, ?? memcpy? ?? ?? ? ? ????. ?? ????? ?? ??? ??? ??? ? ????. ?? ?? ???? ??? ?????. ?? ? ?? ??? ??, ??? ?? ??? ?? ???, ?? ?? ?? ?? ??? ?? ? ?? ? ?? ?? ??? ?????. ?? ?? structpoint {intx; inty;}? pod???. ??? ???? ???? I/O, C ?? ???, ?? ??? ?? ?????. std :: is_pod? ?? ??? POD?? ??? ? ??? C 11 ??? std :: is_trivia? ???? ?? ????.

C?? Python Code? ????? ?? ???? ??? ? ?? ???, ?? ?? ?? ??? ???? ?? ??? ?? ? ? ????. 1. Py_Initialize ()? ?????? ????? py_finalize ()? ????. 2. pyrun_simplefile? ???? ??? ?? ?? pyrun_simplefile? ?????. 3. pyimport_importmodule? ?? ?? ?? ??, pyobject_getattrstring? ?? ??? ???? py_buildvalue? ?? ??? ???? ??? ???? ???? ??

functionhiding alkes ressaMenaMeAsabaseClassFunctions? henaderivedClassDefinesAftunction, theBaseInAccessibleThroughTheDerivedClass.thishAppenswhentheBaseFunctionis notvirtualorsignaturesdon n'tmatchforevered, and nousingdeclarationis

C?? ??? ?? ??? ???? ? ?? ?? ??? ???? : ?? ??? ??, std :: ?? ? ?? ??? ? ??? ???. 1. ?? ???? ?? ???? ???? ??? ???? ?? C ?????? ????? ???? ?? ????. 2. STD :: LAMBDA ???? ?? ? ??? ?? C?? ???? ???? ??? ?? ??? ??? ???? ??-?????. 3. ??? ?? ??? ?? ???? ????? ?? ?? ?? ??? ????? ??? ??? ?? ??? ???? ? ????. ????? ???? ??? std :: ?? ?? ???? ?? ??????? ?? ???? ?? ?? ? ? ????.

anullpointerinc isaspecialValueindicating thatapointerspointtoanyvalidmorylocation, anditusiusedToSafelyManageNageanDcheckPointersbeforedEereferencing.1.Beforec 11,0ornull? WASSED, BUTNULLPTRISFREFERREDFORITYONDTYPESAFETY.SUNULLPOINTETYTETETENULUNULPENTETETETENGE

STD :: MOVE? ??? ???? ???? ?? ??? rvalue ??? ???? ????? ??? ?? ??? ??? ? ??? ?????. ?? ??, ??? ????? ? ???? ???? ???? ???? ?? ?? ??? ???? ?? ?? ?? ???? ?? ? ? ????. ?? ?? ??, ???? ?? ?? ??? ??? ?? ???? ???? ??? ?? ???? ?????? ???????. ??? ?? ????? ???? ???? ??? ????? ???, ?? ?? ??? ??? ?? ???? ????. ??? ????? ?? ? ? ??? ?? ???? ??? ?? ? ??? ??? ?? ??? ???? ?? RVO ???? ?? ??? ? ???? STD :: ??? ???? ???? ??? ? ? ????. ??? ???? ?? ???? ??? ?????? ??, ???? ??? ? ??? ??? ??? ?? ??? ?????.
