int CStdLibFileIO::Open(const wchar_t * pName, BOOL bOpenReadOnly) { Close(); m_bReadOnly = FALSE; if (0 == wcscmp(pName, _T("-")) || 0 == wcscmp(pName, _T("/dev/stdin"))) { m_pFile = SETBINARY_IN(stdin); m_bReadOnly = TRUE; // ReadOnly } else if (0 == wcscmp(pName, _T("/dev/stdout"))) { m_pFile = SETBINARY_OUT(stdout); m_bReadOnly = FALSE; // WriteOnly } else { CSmartPtr<char> spFilenameUTF8((char *) CAPECharacterHelper::GetUTF8FromUTF16(pName), TRUE); m_pFile = fopen(spFilenameUTF8, "r+b"); m_bReadOnly = FALSE; // Read/Write } if (!m_pFile) return -1; wcscpy(m_cFileName, pName); return 0; }
int CStdLibFileIO::Open(const wchar_t * pName) { Close(); m_bReadOnly = false; char * wpName = GetANSIFromUTF16(pName); if (0 == wcscmp(pName, L"-") || 0 == wcscmp(pName, L"/dev/stdin")) { m_pFile = SETBINARY_IN(stdin); m_bReadOnly = true; // ReadOnly } else if (0 == wcscmp (pName, L"/dev/stdout")) { m_pFile = SETBINARY_OUT(stdout); m_bReadOnly = false; // WriteOnly } else { m_pFile = fopen(wpName, "r+b"); if (!m_pFile) { /* * if we fail to open it with Read/Write permission, * we will try Read-Only. */ m_pFile = fopen(wpName, "rb"); // ReadOnly m_bReadOnly = true; } else m_bReadOnly = false; // Read/Write } if (!m_pFile) return -1; wcscpy(m_cFileName, pName); return 0; }
int CStdLibFileIO::Open(LPCTSTR pName) { // DBEXP("CStdLibFileIO::Open",""); Close(); m_bReadOnly = FALSE; if (0 == strcmp(pName, "-") || 0 == strcmp(pName, "/dev/stdin")) { m_pFile = SETBINARY_IN(stdin); m_bReadOnly = TRUE; // ReadOnly } else if (0 == strcmp (pName, "/dev/stdout")) { m_pFile = SETBINARY_OUT(stdout); m_bReadOnly = FALSE; // WriteOnly } else { // SHINTA --> // "rb" to "rb+"; to change APE tag by CAPETag::SetField() m_pFile = fopen(pName, "rb+"); m_bReadOnly = FALSE; // Read/Write if ( !m_pFile ) { // Try read only open m_pFile = fopen(pName, "rb"); m_bReadOnly = TRUE; } // <-- SHINTA } if (!m_pFile) return -1; strcpy(m_cFileName, pName); return 0; }
int CStdLibFileIO::Create(const char* pName) { Close(); if (0 == strcmp (pName, "-") || 0 == strcmp (pName, "/dev/stdout")) { m_pFile = SETBINARY_OUT(stdout); m_bReadOnly = FALSE; // WriteOnly } else { m_pFile = fopen (pName, "w+b"); // Read/Write // SHINTA m_bReadOnly = FALSE; } if (!m_pFile) return -1; strcpy (m_cFileName, pName); return 0; }
int CStdLibFileIO::Create(const wchar_t * pName) { Close(); if (0 == wcscmp (pName, L"-") || 0 == wcscmp (pName, L"/dev/stdout")) { m_pFile = SETBINARY_OUT(stdout); m_bReadOnly = false; // WriteOnly } else { char * wpName = GetANSIFromUTF16(pName); m_pFile = fopen (wpName, "wb+"); // Read/Write m_bReadOnly = false; } if (!m_pFile) return -1; wcscpy (m_cFileName, pName); return 0; }