Прежде всего, вы должны использовать snprintf
, а не операции конкатенации, чтобы создать строку сразу. Это безопасный и эффективный способ. Конкатенация может быть идиоматичной в скриптовых языках, но она неэффективна и вредна (подвержена опасным ошибкам) в C.
С учетом вышесказанного, начиная с первой версии DOS, в которой были каталоги (2 или 3; я забыл, как это было), '/'
был действительным в качестве разделителя пути в DOS и всегда действительным в Windows также. Единственная причина, по которой он не использовался, заключается в том, что многие устаревшие программы командной строки, разработанные до того, как каталоги, поддерживаемые DOS, интерпретируют '/'
как символ «переключателя» (опция) при разборе командной строки. За последние 20 лет единственной реальной системой, которая не поддерживала '/'
в качестве разделителя пути, является MacOS до OSX, и я не думаю, что это более жизнеспособная цель, поэтому, на мой взгляд, вы должны просто всегда использовать '/'
, и избегайте загрязнения вашего кода необоснованной переносимостью.