Открытие файла c: С | Открытие и закрытие потоков

Содержание

Как открыть файл с расширением файла C—

Загрузить Просмотр файлов Универсальный (File Magic) 

Установить необязательные продукты — File Magic (Solvusoft) | EULA | Privacy Policy | Terms | Uninstall


Проблема: Вы не можете открыть файл C—

Возможно, вы дважды нажали на файл, чтобы его приветствовали сообщением «Выберите программу, чтобы открыть файл». В некоторых случаях вы можете открыть файл, но содержимое может показаться искаженным, и это потому, что оно было написано для открытия в конкретной программе. Конечно, вы не можете открыть файл C— только с любым программным обеспечением. Не волнуйся — мы тебя охватили!

Шаг 1: Узнайте, какое программное обеспечение использует C— Files

Открытие файла C— начинается с понимания того, какое программное обеспечение использует расширение C—. Во многих случаях различные типы программного обеспечения могут использовать одни и те же расширения файлов, также известные как ассоциации файлов.

Sphinx C— Source — самый популярный программный пакет, который использует файлы C—. Поэтому лучше всего будет загрузить этот программный пакет и использовать его для открытия вашего файла.

Файлы с zip-файлами, как правило, требуют специальной обработки и могут требовать доступа к паролю. Обратитесь к владельцу файла или к лицу, предоставившему вам файл для пароля, и распакуйте файл перед тем, как открыть его.

Шаг 2: Узнать больше о C— «Тип файла»

Если вы не можете загрузить программное обеспечение Sphinx C— Source или если оно не работает, чтобы открыть файл C—, вы можете использовать тип файла в качестве подсказки, чтобы узнать, как его можно открыть , С помощью ПК с Windows вы можете щелкнуть правой кнопкой мыши и перейти к «Свойствам», а затем «Тип файла». На Mac выберите «Дополнительная информация» и «Вид».

Скорее всего, вы обнаружите, что файлы C— считаются Uncommon Files. Поскольку во многих пакетах программ используется Uncommon Files, вы можете найти на своем компьютере программу, которая обрабатывает эти типы файлов.

Если это все еще не работает, вам может потребоваться обратиться к соответствующему разработчику программного обеспечения, чтобы узнать, как его открыть. Если вы не знаете конкретного разработчика, вы можете обратиться за помощью к одному из этих разработчиков.

См. Нашу диаграмму ниже названий программ и их разработчиков:

Программного обеспеченияразработчик
Sphinx C— SourceMicrosoft Programmer

Решение: Использование File Magic для открытия файла C—

Хотя некоторые файлы должны быть открыты в формате двоичного файла (т. Е. В программе или устройстве, для которых он был разработан), вы можете открыть его с помощью универсального средства просмотра программного обеспечения. В зависимости от точного формата файла вы можете использовать универсальный программный просмотрщик, такой как File Magic [download], чтобы открыть файл C—. Загрузите File Magic сегодня, чтобы открыть ваши файлы C— и сотни других типов файлов с помощью одной программы.


Рекомендуем Sorry, your browser doesn’t support embedded videos.

Загрузить Просмотр файлов Универсальный (File Magic) 

Установить необязательные продукты — File Magic (Solvusoft) | EULA | Privacy Policy | Terms | Uninstall

Как открыть файл C? Расширение файла .

C

Что такое файл C?

.C — файл исходного кода для языка C или C ++. C и C ++ являются объектно-ориентированными языками программирования и рассматриваются как языки программирования среднего уровня, используемые для разработки программных приложений. Инструментарий C ++, используемый для написания кода C ++, использует блокнот для написания кода и компилятор C ++, который преобразует текстовый файл в исходный код вместе с другими инструментами. Файлы с расширением .C доступны в текстовых редакторах, и пользователь может читать или записывать данные в этих файлах с помощью простого текстового редактора. Файл .C содержит фактический код, написанный пользователем, и другую информацию, такую как директивы и комментарии.

Программы, которые поддерживают C расширение файла

Следующий список содержит программы, сгруппированные по 3 операционным системам, которые поддерживают C файлы. Файлы с суффиксом C могут быть скопированы на любое мобильное устройство или системную платформу, но может быть невозможно открыть их должным образом в целевой системе.

Updated: 06/06/2020

Как открыть файл C?

Причин, по которым у вас возникают проблемы с открытием файлов C в данной системе, может быть несколько. К счастью, наиболее распространенные проблемы с файлами C могут быть решены без глубоких знаний в области ИТ, а главное, за считанные минуты. Приведенный ниже список проведет вас через процесс решения возникшей проблемы.

Шаг 1. Установите Microsoft Visual Studio программное обеспечение

Наиболее распространенной причиной таких проблем является отсутствие соответствующих приложений, поддерживающих файлы C, установленные в системе. Этот легкий. Выберите Microsoft Visual Studio или одну из рекомендованных программ (например, EditPlus, Borland C++, Eclipse IDE) и загрузите ее из соответствующего источника и установите в своей системе. В верхней части страницы находится список всех программ, сгруппированных по поддерживаемым операционным системам. Одним из наиболее безопасных способов загрузки программного обеспечения является использование ссылок официальных дистрибьюторов. Посетите сайт Microsoft Visual Studio и загрузите установщик.

Шаг 2. Проверьте версию Microsoft Visual Studio и обновите при необходимости

Если у вас уже установлен Microsoft Visual Studio в ваших системах и файлы C по-прежнему не открываются должным образом, проверьте, установлена ли у вас последняя версия программного обеспечения. Иногда разработчики программного обеспечения вводят новые форматы вместо уже поддерживаемых вместе с новыми версиями своих приложений. Это может быть одной из причин, по которой C файлы не совместимы с Microsoft Visual Studio. Все форматы файлов, которые прекрасно обрабатывались предыдущими версиями данной программы, также должны быть открыты с помощью Microsoft Visual Studio.

Шаг 3. Свяжите файлы C/C++ Source Code Format с Microsoft Visual Studio

Если у вас установлена последняя версия Microsoft Visual Studio и проблема сохраняется, выберите ее в качестве программы по умолчанию, которая будет использоваться для управления C на вашем устройстве. Метод довольно прост и мало меняется в разных операционных системах.

Изменить приложение по умолчанию в Windows

  • Щелкните правой кнопкой мыши на файле C и выберите «Открыть с помощью опцией».
  • Выберите Выбрать другое приложение → Еще приложения
  • Чтобы завершить процесс, выберите Найти другое приложение на этом… и с помощью проводника выберите папку Microsoft Visual Studio. Подтвердите, Всегда использовать это приложение для открытия C файлы и нажав кнопку OK .

Изменить приложение по умолчанию в Mac OS

  • В раскрывающемся меню, нажав на файл с расширением C, выберите Информация
  • Найдите опцию Открыть с помощью — щелкните заголовок, если он скрыт
  • Выберите из списка соответствующую программу и подтвердите, нажав « Изменить для всех» .
  • Наконец, это изменение будет применено ко всем файлам с расширением C должно появиться сообщение. Нажмите кнопку Вперед, чтобы подтвердить свой выбор.
Шаг 4. Убедитесь, что C не неисправен

Если вы выполнили инструкции из предыдущих шагов, но проблема все еще не решена, вам следует проверить файл C, о котором идет речь. Отсутствие доступа к файлу может быть связано с различными проблемами.

1. C может быть заражен вредоносным ПО — обязательно проверьте его антивирусом.

Если C действительно заражен, возможно, вредоносное ПО блокирует его открытие. Рекомендуется как можно скорее сканировать систему на наличие вирусов и вредоносных программ или использовать онлайн-антивирусный сканер. Если сканер обнаружил, что файл C небезопасен, действуйте в соответствии с инструкциями антивирусной программы для нейтрализации угрозы.

2. Проверьте, не поврежден ли файл

Если файл C был отправлен вам кем-то другим, попросите этого человека отправить вам файл. В процессе копирования файла могут возникнуть ошибки, делающие файл неполным или поврежденным. Это может быть источником проблем с файлом. Если файл C был загружен из Интернета только частично, попробуйте загрузить его заново.

3. Убедитесь, что у вас есть соответствующие права доступа

Иногда для доступа к файлам пользователю необходимы права администратора. Войдите в систему, используя учетную запись администратора, и посмотрите, решит ли это проблему.

4. Убедитесь, что в системе достаточно ресурсов для запуска Microsoft Visual Studio

Если система перегружена, она может не справиться с программой, которую вы используете для открытия файлов с расширением C. В этом случае закройте другие приложения.

5. Убедитесь, что у вас установлены последние версии драйверов, системных обновлений и исправлений

Регулярно обновляемая система, драйверы и программы обеспечивают безопасность вашего компьютера.

Это также может предотвратить проблемы с файлами C/C++ Source Code Format. Возможно, что одно из доступных обновлений системы или драйверов может решить проблемы с файлами C, влияющими на более старые версии данного программного обеспечения.

fopen

Кодировка символов, чтобы использовать для последующих операций чтения и операций записи, включая fscanf, fprintf, fgetl, fgets, fread, и fwriteВ виде вектора символов или строкового скаляра. Вектор символов или строковый скаляр должны содержать имя схемы кодирования стандартного символа, такое как следующее.

'Big5'

'ISO-8859-1'

'windows-874'

'Big5-HKSCS'

'ISO-8859-2'

'windows-949'

'CP949'

'ISO-8859-3'

'windows-1250'

'EUC-KR'

'ISO-8859-4'

'windows-1251'

'EUC-JP'

'ISO-8859-5'

'windows-1252'

'EUC-TW'

'ISO-8859-6'

'windows-1253'

'GB18030'

'ISO-8859-7'

'windows-1254'

'GB2312'

'ISO-8859-8'

'windows-1255'

'GBK'

'ISO-8859-9'

'windows-1256'

'IBM866'

'ISO-8859-11'

'windows-1257'

'KOI8-R'

'ISO-8859-13'

'windows-1258'

'KOI8-U'

'ISO-8859-15'

'US-ASCII'

 

'Macintosh'

'UTF-8'

 

'Shift_JIS'

 

Если вы не задаете схему кодирования при открытии файла для чтения, fopen использует автоматическое обнаружение набора символов, чтобы определить кодирование. Если вы не задаете схему кодирования при открытии файла для записи, fopen значения по умолчанию к использованию UTF-8 для того, чтобы обеспечить функциональную совместимость между всеми платформами и локалями без потери данных или повреждения. Для получения дополнительной информации см. Импорт текстовых файлов с низкоуровневым вводом — выводом.

Если вы задаете значение для кодирования, которое не находится в списке поддерживаемых значений, MATLAB выдает предупреждение. Определение других имен кодирования иногда (но не всегда) приводит к правильным результатам.

Типы данных: char | string

Учимся работать с файлами через Windows API

Из предыдущих постов, посвященных WinAPI, мы научились настраивать Visual Studio и узнали, как в нем писать простые консольные приложения. Следующим маленьким шажком в изучении WinAPI будет освоение работы с файлами.

Для этого нелегкого дела нам понадобятся следующие процедуры:

CreateFile(szName, dwAccess, dwShareMode, lpSecurityAttributes,
           dwCreationDisposition, dwFlags, hTemplateFile);

В Windows для того, чтобы открыть или создать файл, нужно вызвать процедуру, имеющую целых семь аргументов. К счастью, большинство из них приходится использовать крайне редко. Аргумент szName задает имя файла, а dwAccess — желаемый доступ к файлу, обычно это GENERIC_READ, GENERIC_WRITE или оба значения, объединенные логическим или. Параметр dwShareMode определяет, что могут делать с файлом другие процессы, пока мы с ним работаем. Возможные значения — FILE_SHARE_READ, FILE_SHARE_WRITE, FILE_SHARE_DELETE и их комбинации, однако часто этот параметр просто устанавливают в ноль. Параметр dwCreationDisposition определяет, как именно мы хотим открыть файл, может быть, например, CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS. О семантике этого хозяйства нетрудно догадаться самостоятельно. С помощью dwFlags можно указать дополнительные свойства файла, например, хранить ли его в зашифрованном или сжатом виде, или сказать, что файл является скрытым, временным или системным. Обычно сюда передают FILE_ATTRIBUTE_NORMAL. Наконец, про lpSecurityAttributes и hTemplateFile сейчас знать не нужно, сюда можно смело передавать NULL.

В случае успешного создания или открытия файла, процедура CreateFile возвращает его хэндл. В случае ошибки возвращается специальное значение INVALID_HANDLE_VALUE. Узнать подробности об ошибке можно с помощью GetLastError.

ReadFile(hFile, lpBuff, dwBuffSize, &dwCount, NULL);

Чтение из файла в буфер lpBuff размером dwBuffSize. В переменную dwCount записывается реальное количество прочитанных байт. Последний опциональный аргумент называется lpOverlapped и о нем сейчас знать не нужно.

WriteFile(hFile, lpBuff, dwBuffSize, &dwCount, NULL);

Аргументы и семантика процедуры WriteFile полностью аналогичны ReadFile.

Файловые дескрипторы закрываются с помощью CloseHandle. На самом деле, эта процедура используется не только для работы с файлами, так что мы еще не единожды с нею встретимся.

Посмотрим теперь на все это хозяйство в действии. Следующая программа пишет в файл counter.dat количество собственных запусков. Первые пять запусков ничем не примечательны. На шестой и последующие запуски программа сообщает, что у нее истек триал и просит приобрести полную версию.

#include <windows.h>

#define MAX_TRIAL_RUNS 5

const TCHAR szCounterFileName[] = L"counter.dat";
const TCHAR szMsgTmpl[] = L"Вы запустили программу в %d-й раз. %s.";
const TCHAR szCheckOk[] = L"Все в порядке, продолжайте работу";
const TCHAR szCheckFailed[] = L"Триал истек, купите полную версию";

DWORD ReadCounter() {
  DWORD dwCounter, dwTemp;
  HANDLE hFile = CreateFile(szCounterFileName, GENERIC_READ, 0, NULL,
                           OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
  if(INVALID_HANDLE_VALUE == hFile) {
    return 1;
  }
  ReadFile(hFile, &dwCounter, sizeof(dwCounter), &dwTemp, NULL);
  if(sizeof(dwCounter) != dwTemp) {
    CloseHandle(hFile);
    return 1;
  }
  CloseHandle(hFile);
  return dwCounter;
}

VOID WriteCounter(DWORD dwCounter) {
  DWORD dwTemp;
  HANDLE hFile = CreateFile(szCounterFileName, GENERIC_WRITE, 0, NULL,
                           CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
  if(INVALID_HANDLE_VALUE == hFile) {
    return;
  }
  WriteFile(hFile, &dwCounter, sizeof(dwCounter), &dwTemp, NULL);
  CloseHandle(hFile);
}

int main() {
  TCHAR szMsg[256];
  DWORD dwCounter = ReadCounter();
  LPCWSTR lpCheckResult = dwCounter > MAX_TRIAL_RUNS ?
                          szCheckFailed : szCheckOk;
  wsprintf(szMsg, szMsgTmpl, dwCounter, lpCheckResult);
  MessageBox(0, szMsg, L"Сообщение", 0);

  if(dwCounter <= MAX_TRIAL_RUNS) {
    WriteCounter(dwCounter+1);
  }

  ExitProcess(0);
}

Как обычно, программа также успешно компилируется при помощи MinGW и запускается под Wine.

В качестве домашнего задания можете попробовать модифицировать программу так, чтобы она выводила время, когда производились все ее запуски. Для этого вам понадобятся процедуры GetLocalTime, SetFilePointer и GetFileSizeEx. Если это задание покажется вам слишком простым, попробуйте найти информацию о том, как при помощи процедур, упомянутых в этой заметке, (1) написать консольное приложение и (2) открыть диск C: на чтение, словно он является обычным файлом.

Если у вас есть дополнения или возникли вопросы, смелее пишите комментарии, не стесняйтесь!

Дополнение: Рекурсивный поиск файлов с использованием WinAPI

Метки: C/C++, WinAPI.

Краткий учебный курс по началу работы с проектами C/C++

Поддержка C/C в среде NetBeans позволяет создавать проекты приложений и библиотек C и C с автоматически созданными файлами make, а также проекты C и C++ с существующими исходными кодами.

Разработчик может осуществлять сборку, выполнение и отладку проекта на локальном узле (в системе, из которой запускается среда IDE) или на удаленном узле под управлением операционной системы UNIX®. Информацию о выборе набора средств для проекта, а также об определении и использовании удаленных узлов см. в разделе Определение среды разработки проекта C/C+ +.

Среда IDE управляет всеми параметрами сборки, запуска и отладки приложения проектов "Приложение на C/C++", "Динамическая библиотека" или "Статическая библиотека". Параметры проекта указываются при создании проекта, а также в диалоговом окне "Свойства проекта". Среда IDE создает файл make, в котором хранятся все настройки.

Создание проекта приложения на языке C/C++

  1. Откройте мастер "Новый проект" с помощью команды FIle ("Файл") > New Project ("Новый проект").

  2. Выберите категорию "C/C++" в мастере.

  3. Мастер предлагает возможность выбора типа нового проекта. Выберите параметр "Приложение на C/C++" и нажмите кнопку "Далее".

  1. Создайте в мастере новый проект "Приложение C/C++", используя параметры по умолчанию. Название проекта и его расположение выбираются разработчиком.

  1. Для выхода из мастера нажмите кнопку "Готово".

Проект создается с логическими папками. Логическая папка не является каталогом. Она представляет собой способ упорядочения файлов и не отражает физическое расположение файлов на диске. Добавленные в логические папки файлы автоматически становятся частью проекта и компилируются при сборке проекта.

Файлы, добавленные в папку 'Важные файлы', не являются частью проекта и не компилируются при сборке проекта. Эти файлы являются справочной информацией и могут быть полезны разработчику, когда имеется проект с существующим файлом make.

Переключение логического и физического представления проекта

Проект имеет логическое и физическое представление. Разработчик может переключаться между логическим и физическим представлением проекта.

  1. Перейдите на вкладку "Файлы". В этом окне содержится физическое представление проекта. В нем отображается расположение файлов и папок на диске.

  1. Перейдите на вкладку "Проекты". В этом окне содержится логическое представление проекта.

Большинство команд, выполняемых в проекте, доступны на вкладке "Проекты", а не на вкладке "Файлы".

Добавление файлов и папок в проект

Разработчик может добавлять в проект логические папки.

  1. Щелкните узел проекта "Приложение" правой кнопкой мыши и выберите команду "Новая логическая папка". В проект будет добавлена новая логическая папка.

  2. Щелкните добавленную логическую папку правой кнопкой мыши и выберите команду "Переименовать". Введите имя для новой папки.

В существующую папку можно добавлять файлы и папки. Логические папки могут быть вложенными.

Добавление новых файлов в проект

В проект также можно добавить новые файлы.

  1. Щелкните правой кнопкой мыши папку "Исходные файлы" и выберите команду "Создать" > "Исходный файл на языке C++".

  2. Перейдите на страницу "Имя и местоположение" диалогового окна "Новый файл" и введите newfile в поле "Имя файла".

  1. Нажмите кнопку 'Готово'.

Файл newfile.cpp создается на диске в каталоге, указанном в мастере, а также добавляется в папку "Исходные файлы". В эту папку можно добавлять любые файлы, а не только файлы исходного кода.

Добавление дополнительных новых файлов в проект

  1. Щелкните папку "Файлы заголовка" правой кнопкой мыши и выберите команду "Создать" > "Файл заголовка на языке C++".

  2. Перейдите на страницу "Имя и местоположение" диалогового окна "Новый файл" и введите newfile в поле "Имя файла".

  3. Нажмите кнопку 'Готово'.

Файл newfile.h создается на диске в каталоге, указанном в мастере, а также добавляется в папку "Исходные файлы".

Добавление существующих файлов в проект

Существующие файлы добавляются в проект двумя способами:

  • Правой кнопкой щелкните папку "Исходные файлы" и выберите команду "Добавить существующий элемент". Чтобы установить ссылку на существующий файл на диске, откройте диалоговое окно "Выбрать элемент" и добавьте файл в проект.

  • Правой кнопкой щелкните папку "Исходные файлы" и выберите команду "Добавить существующие элементы из папок". Используйте диалоговое окно "Добавить файлы" для добавления папок, содержащих существующие файлы.

Не используйте команду меню "Новый" для добавления существующих элементов. На панели "Имя и местоположение" отображаются сведения о существовании файла.

Установка свойств проекта

После создания проекта у него появляются две конфигурации: 'Отладка' и 'Выпуск'. Настройка – это набор параметров, использованных для проекта. При выборе настройки несколько параметров переключаются одновременно. При выборе настройки "Отладка" создается версия приложения, которая содержит сведения об отладке. При выборе настройки "Выпуск" создается оптимизированная версия.

В диалоговом окне "Свойства проекта" содержатся сведения о сборке и настройке проекта. Открытие диалогового окна "Свойства проекта"

Разработчик может изменять параметры средства сборки по умолчанию, параметры компилятора и другие параметры настройки в диалоговом окне "Свойства проекта". Для этого следует выбрать узел на левой панели и изменить свойства на правой панели. Выберите несколько узлов и значений свойств и обратите внимание на то, какие свойства можно установить. При установке свойств категории "Общие" они устанавливаются для всех настроек проекта. Свойства 'Сборка', 'Запуск' или 'Отладка' устанавливаются для текущей выбранной конфигурации.

Управление настройками

Свойства, измененные в окне "Свойства проекта", хранятся в файле make для текущей настройки. Разработчик может изменять настройки по умолчанию или создавать новые. Для создания новой настройки выполните следующие действия.

  1. Нажмите кнопку "Управление настройками" в диалоговом окне "Свойства проекта".

  2. В диалоговом окне "Настройки" выберите настройку, которая больше всего совпадает с требуемой настройкой. В этом случае выберите настройку "Выпуск" и нажмите кнопку "Дублировать". Затем нажмите кнопку "Переименовать".

  3. В диалоговом окне "Переименовать" переименуйте настройку в PerformanceRelease. Нажмите кнопку "ОК".

  4. Нажмите кнопку "ОК" в диалоговом окне "Настройки".

  5. На левой панели выберите узел "Компилятор C".

  6. В диалоговом окне "Свойства проекта" обратите внимание на то, что в раскрывающемся списке "Настройка" выбрана настройка "PerformanceRelease".

  7. В окне свойств на правой панели измените значение "Режим разработки" со значения "Release" на значение "PerformanceRelease". Нажмите кнопку "ОК".

Создана новая настройка, которая служит для компиляции приложения с другим набором параметров.

Установка свойств файлов исходного кода

При установке свойств проекта C или C++ они действуют для всех файлов проекта. Также можно установить некоторые свойства для отдельных файлов.

  1. Щелкните правой кнопкой мыши исходный файл newfile.cpp на вкладке "Проекты" и выберите команду "Свойства".

  2. Щелкните категорию "Общее" и обратите внимание, что существует возможность указания различных компиляторов или других средств для сборки этого файла. Также можно использовать флажок для исключения файла из сборки выбранной в настоящий момент настройки проекта.

  3. Щелкните категорию "Компилятор C++" и убедитесь, что существует возможность переопределения параметров компилятора и других свойств этого файла.

  4. Отмените работу с диалоговым окном "Свойства файла".

Сборка и пересборка проекта

Для сборки проекта выполните следующие действия.

  1. Правой кнопкой мыши щелкните узел проекта и выберите команду "Сборка", после чего будет выполнена сборка проекта. Результат сборки выводится в окне "Вывод"

  2. Замените настройку "Отладка" на настройку "PerformanceRelease" в раскрывающемся списке настроек на главной панели инструментов. Проект будет собран с использованием настройки PerformanceRelease.

  3. Правой кнопкой мыши щелкните узел проекта и выберите команду "Сборка", после чего будет выполнена сборка проекта. Результат сборки выводится в окне "Вывод"

Для повторной сборки проекта:

  • Щелкните узел проекта правой кнопкой мыши и выберите 'Очистить и собрать', чтобы выполнить полную повторную сборку проекта после удаления результатов предыдущей сборки.

  • Щелкните узел проекта правой кнопкой мыши и выберите 'Собрать', чтобы выполнить инкрементную сборку. Но после open () какую ошибку мне выдаст?

    2

    anto150192 19 Апр 2015 в 20:45

    3 ответа

    Лучший ответ

    Ознакомьтесь с системной командой / командой оболочки под названием flock.

    Так как вы хотите, чтобы только один процесс имел доступ к открытому файлу, вы будете использовать операцию LOCK_EX с файловым дескриптором (при условии, что вы используете системный вызов).

    Просмотрите страницы руководства. man flock для команды оболочки и man 2 flock для системного вызова.

    1

    Lucas Trzesniewski 19 Апр 2015 в 18:59

    Вы можете использовать flock () и установить эксклюзивную блокировку для этого файл. Это предотвратит другие процессы, кроме того, который установил блокировку для открытия файла.

    0

    Cristik 19 Апр 2015 в 18:55

    Если у вас есть один многопоточный сервер (но один процесс), который обрабатывает всех пользователей, то лучше всего просто отслеживать зарегистрированных пользователей в памяти. В этом случае вы можете использовать мьютексы (тип семафора), чтобы убедиться, что одно соединение блокирует доступ к конкретному профилю пользователя, и каждый раз, когда подключается новый пользователь, вы можете запрашивать свою структуру данных. Например, если вы используете pthreads, вы можете определить массив следующим образом, предполагая, что каждый пользователь имеет последовательный целочисленный идентификатор:

    pthread_mutex_t YourServer::accountLocks[numberOfUsers]
    

    Если у вас есть несколько отдельных процессов, которые по какой-то причине не могут совместно использовать память, можно заблокировать файлы. В этом случае вам нужно быть осторожным, чтобы не вводить условия гонки, и вы можете использовать что-то вроде стадо.

    0

    Oleg Vaskevich 19 Апр 2015 в 18:00

    Открываем любые файлы

    Файлы с незнакомыми расширениями встречаются не каждый день. Однако бывают ситуации, когда именно их очень нужно открыть. CHIP расскажет, как определить формат данных, и предоставит необходимые приложения для работы с ними. Узнаем расширение файла При виде файла c непонятным расширением многие сразу задаются вопросом, каким ПО его можно открыть. При этом встроенная функция системы Windows «Найти программу в Интернете», как правило, ничего не дает. Подобные ситуации возникают регулярно: например, коллега присылает вам 3D-модель для оценки, забыв, что у вас нет соответствующего приложения для просмотра, или друг передает фотоальбом, запакованный редким архивным форматом. Если файл не открывается автоматически двойным кликом, в подавляющем большинстве случаев это означает, что на компьютере нет программы, которая могла бы его распознать и обработать. Перед пользователем встает задача узнать формат данных и определить, какая программа нужна для открытия такого файла. Получить информацию о типе файла можно с помощью несложных изменений, которые следует внести в настройки операционной системы вашего компьютера. Если после этого все еще неясно, что за файл перед вами, можно воспользоваться справочными инструментами, в том числе онлайн-сервисами. Еще один способ справиться с неподдающимся файлом — открыть его посредством универсального инструмента, программы-просмотрщика. Если и в этом случае отобразить файл не удается, остается последний вариант — конвертировать его в подходящий формат. В статье мы рассмотрим все эти способы, направленные на борьбу с неизвестностью, познакомим с малораспространенными файлами, а также расскажем, как поступить, если доставшийся вам файл оказался поврежденным.

    Каждому файлу — своя программа

    Определить тип файла можно просто по его расширению, после чего станет понятно и его предназначение.

    Заставляем систему отображать расширения

    По умолчанию в Проводнике Windows расширения файлов могут быть скрыты. При этом слева от каждого из них отображается иконка программы, способная его открыть, если такая программа определена. Например, файл вида article.doc будет представлен в списке как «article» и помечен пиктограммой пакета Microsoft Word. Чтобы стали отображаться расширения файлов, выберите последовательно пункты «Пуск | Панель управления | Оформление и персонализация | Параметры папок». В открывшемся окне перейдите на вкладку «Вид», уберите флажок напротив пункта «Скрывать расширения для зарегистрированных типов файлов» и нажмите на «Применить».

    Выбираем приложение

    Чтобы увидеть, какая программа будет обрабатывать файл по умолчанию, нужно кликнуть по нему правой кнопкой мыши и выбрать в контекстном меню пункт «Свойства». В открывшемся окне на вкладке «Общие» вы увидите тип файла и его расширение, а также утилиту, которая назначена ответственной за открытие данных в таком формате. Если нужно другое приложение, кликните по «Изменить». Откроется список рекомендуемых программ. Если ни одна из них вас не устраивает, нажмите кнопку «Обзор», в появившемся окне зайдите в папку, соответствующую нужной утилите, и кликните по исполняемому файлу. Как правило, это имя приложения с расширением EXE.

    Определяем тип файла

    Какая программа соответствует тому или иному формату, можно узнать с помощью онлайн-сервиса OpenWith.org. На его страницах представлена краткая информация о файлах разных типов. Для поиска конкретных сведений можно воспользоваться окном поиска, указав в нем расширение. Кроме того, многочисленные расширения сгруппированы на сайте в алфавитный каталог. Достаточно выбрать первый символ расширения — OpenWith.org представит список вариантов, начинающихся с этой буквы. Отдельно существует классификация форматов по их предназначению: аудиоданные, документы, плагины и многое другое. Интересно, что для каждого расширения сервис сразу предлагает одно или несколько приложений. Правда, сайт не локализован, и все комментарии к программам и файлам представлены на английском языке.

    Если вы часто сталкиваетесь с данными в незнакомых форматах, с сайта OpenWith.org можно скачать небольшую бесплатную утилиту, которая подскажет, какой программой можно открыть тот или иной файл. Приложение OpenWith предлагает простую и удобную функцию: после его установки в контекстном меню появляется пункт, помогающий определить ПО для запуска конкретного файла.

    Встроенные средства Windows могут подсказать тип файла В операционной системе можно назначить программу, которая займется этим типом данных Утилита OpenWith определит программу, с помощью которой следует открыть указанный файл В онлайн-сервисе OpenWith.org типы файлов разбиты на категории, что облегчает поиск соответствующей программы

    Конвертируем в нужный формат

    В некоторых случаях решить проблему с открытием файла помогает его преобразование в другой, более распространенный формат. Сделать это можно с помощью специальных программ-конвертеров.

    Векторные изображения

    С помощью универсального бесплатного инструмента UniConvertor вы можете преобразовывать файлы из одного векторного формата в другой. В плане импорта программа поддерживает такие расширения, как CDR, CDT, CCX, CDRX, CMX (CorelDRAW), AI, EPS, PLT, DXF, SVG и другие. Экспорт осуществляется в форматы AI, SVG, SK, SK1, CGM, WMF, PDF, PS. Утилита доступна в версиях для Windows и Linux.

    Растровая графика

    Программа Free Image Convert and Resize занимает мало места на жестком диске, но предлагает функции по конвертированию и преобразованию растровых изображений, в том числе в пакетном режиме. Поддерживаются следующие форматы файлов: JPEG, PNG, BMP, GIF, TGA, PDF (последний — только для экспорта).

    Видеофайлы

    Мощный бесплатный инструмент Hamster Video Converter обеспечивает преобразование видеофайлов из одного формата в другой. Поддерживается конвертирование в 3GP, MP3, MP4, AVI, MPG, WMV, MPEG, FLV, HD, DVD, M2TS и т. д. Доступна пакетная обработка.

    Аудиоданные

    Бесплатная программа Hamster Free Audio Converter от того же производителя предлагает конвертирование аудио между форматами AIFF, OGG, WMA, MP3, MP2, AC3, AMR, FLAC, WAV, ACC, COV, RM. На сайте производителя также имеются преобразователи архивных форматов и электронных книг.

    Используем онлайн-сервисы

    Не всегда есть возможность установить программу-конвертер на ПК — в этом случае помогут интернет-ресурсы для преобразования документов.

    Zamzar

    Сервис  zamzar.com  может конвертировать файлы размером до 1 Гбайт. Список поддерживаемых форматов насчитывает несколько десятков (музыка — AAC, FLAC, OGG, WMA и пр., видео — 3GP, FLV, MPG и пр., текст — DOC, KEY, ODS и пр.). Однако при работе с документами могут возникнуть проблемы с кириллическими файлами.

    FreePDFconvert

    Ресурс  freepdfconvert.com  поможет преобразовывать файлы DOC, XLS и PPT, изображения, веб-страницы и другие типы в PDF-файлы. Кроме того, сервис умеет выполнять обратную конвертацию PDF в данные формата DOC, XLS или RTF. Общий список поддерживаемых разрешений приближается к 70. Однако сервис имеет ограничения: в месяц позволяется обрабатывать не более 15 файлов.

    Бесплатная утилита UniConvertor поможет быстро преобразовывать файлы векторных форматов в пакетном режиме Free Image Convert and Resize наделена простейшими функциями конвертирования и изменения размера изображений Для конвертации видео- и аудиофайлов удобно использовать программы Hamster со встроенными кодеками и набором пресетов Онлайн-ресурсы Zamzar (верхний скриншот) и FreePDFConvert — универсальные конвертеры с ограничением по объему  

    Просмотр любого файла

    Программы-просмотрщики зачастую не позволяют работать с файлом полноценно — например, редактировать его. Но с их помощью вы сможете открыть файл и посмотреть на его содержимое.

    Программа Free Opener (freeopener.com, бесплатно) дает возможность просматривать файлы более 80 разных форматов. Ее смело можно назвать универсальным инструментом: утилита позволяет открыть файлы офисных пакетов, видео, изображения, архивы и PDF-документы. В настройках можно задать подсветку синтаксиса для текстовых файлов или файлов с кодами программ.

    С помощью Ultimate File Viewer (ultimatefileviewer.com, есть trial-версия) можно не только просматривать файлы разных форматов, но и выполнять с ними дополнительные действия — например, копировать или переносить в разные папки, отправлять по электронной почте. Дополнительным преимуществом является поиск по содержимому файла.

    Программа ICE Book Reader Professional является универсальным инструментом для чтения файлов электронных книг и различного рода текстовых документов, к которым относятся DOC, TXT, HTML, PDF и многие другие.

    Бесплатная утилита Free Viewer открывает файлы разных форматов, отображая дополнительно окно с информацией. С ее помощью можно точно узнать, какая программа необходима для открытия того или иного файла. Кроме того, в приложении имеется встроенный конвертер, и оно позволяет установить ассоциацию для файлов на уровне ОС.

    Небольшая бесплатная программа XnView послужит удобным просмотрщиком графических файлов. К тому же в ней можно выполнять элементарные операции редактирования картинок (вставка надписи, поворот, применение эффектов). Всего утилита поддерживает более 400 различных расширений и позволяет конвертировать их более чем в 50 форматов. Среди дополнительных возможностей программы — работа со сканером, создание скриншотов, запись рисунков на компакт-диск.

    Если данные повреждены

    В некоторых случаях при попытке открыть файл пользователь может столкнуться с сообщением, что этот объект поврежден. Данные можно попытаться восстановить. Например, в случае с документом Microsoft Word в окне «Открытие документа» можно, выбрав файл, воспользоваться пунктом «Открыть и восстановить». Таким же способом можно попытаться «воскресить» файлы Excel и других приложений офисного пакета. В остальных ситуациях для решения задачи можно воспользоваться другими утилитами. Например, коммерческая программа Word Recovery Toolbox поможет восстановить файлы форматов DOC, DOCX и RTF. Можно также задействовать бесплатный онлайн-сервис online.officerecovery.com/ru, однако в этом случае нужно подумать, стоит ли доверять конфиденциальные документы открытому ресурсу. Еще один вариант — воспользоваться trial-верcией (бесплатный период — 15 дней) утилиты WordFIX. В качестве универсального инструмента восстановления файлов рекомендуем бесплатную программу File Repair. С ее помощью есть шанс вернуть к жизни документы Word, Excel, Access, PowerPoint, архивы ZIP и RAR, видео-, аудио- и графические файлы.

    Онлайн-справочники типов файлов

    Прочесть о типах файлов и разобраться в их многообразии можно на специализированных онлайн-ресурсах.

    open-file.ru — справочник по форматам с описаниями и подсказками.

    neumeka.ru/tipy_faylov.html — какие бывают расширения файлов.

    convertfile.ru — все о видеоформатах.

    filecheck.ru — информация о разных файлах и подсказки по их применению.

    fileext.ru — справочник по типам файлов, а также способам их открытия.

    file-extensions.org — англоязычный справочник по расширениям файлов.

    filext.com — база данных с описанием типов файлов.

    C читать файл | Упрощенное программирование

    Как читать файл на C? Вы уже знаете, что такое файл и его типы (текстовый / двоичный (аудио / изображения / видео и т. Д.)). Когда компьютер выключен, они присутствуют на жестком диске.

    Предположим, на прошлой неделе вы создали программу на языке C для сортировки чисел и хотите снова увидеть эту программу. Как ты делаешь это? Вы находите файл в системе и открываете его в IDE / текстовом редакторе. Это круто! Но что интереснее, так это открыть файл через вашу программу.

    Для простоты мы обсуждаем только чтение текстовых файлов.

    Давайте напишем программу на C, чтобы открывать файл с жесткого диска, имя которого вводится пользователем, и отображать его содержимое на экране. Открытие файла означает, что мы переносим содержимое файла с диска в ОЗУ для выполнения над ним операций (чтения / изменения / добавления файла). Файл должен находиться в каталоге, в котором находится исполняемый файл программы.

    Функция fopen используется для открытия файла; он возвращает указатель на структуру FILE, которая является предопределенной структурой в "stdio.h "заголовочный файл. Если открытие файла прошло успешно, он возвращает указатель на файл, а если не может открыть его, то возвращает NULL.

    Функция fgetc возвращает символ, прочитанный из файла, и Функция fclose закрывает файл.

    Чтение файла на C с использованием программного кода fopen

    C для открытия файла и вывода его содержимого на экран.

    #include
    #include

    int main ()
    {
    char ch, file_name [25];
    FILE * fp;

    printf ("Введите имя файла, который вы хотите увидеть \ n");
    получает (имя_файла);

    fp = fopen ( file_name, "r"); // режим чтения

    if (fp == NULL)
    {
    perror ("Ошибка при открытии файла.\ n ");
    exit (EXIT_FAILURE);
    }

    printf (" Содержимое файла% s: \ n ", имя_файла);

    while ((ch = fgetc (fp))! = EOF)
    printf ("% c", ch);

    fclose (fp);
    return 0;
    }

    Чтение файла вывода программы C:

    Загрузить Чтение программы файла.

    В конце файл.В нашей программе мы открыли только один файл.В одной программе можно открывать несколько файлов в разных режимах по мере необходимости.

    Обработка файлов необходима, когда мы хотим постоянно хранить данные на устройстве хранения. Все переменные и данные программы теряются при ее завершении. Если данные потребуются позже, нам нужно сохранить их в файле.

    Файл C (что это такое и как его открыть)

    Файл с расширением .C представляет собой текстовый файл исходного кода C / C ++. Он может содержать как исходный код всей программы на языке программирования C или C ++, так и ссылаться на другие файлы из проекта C.

    Обратите внимание, что некоторые программы используют расширение файла c в нижнем регистре для обозначения файла исходного кода C и C в верхнем регистре для C ++, но это не обязательно. CPP также используется для файлов исходного кода C ++.

    Если файл C написан не на языке программирования C или C ++, это может быть файл сценария Lite-C, написанный на lite-C, языке программирования, аналогичном C / C ++.

    Оба эти типа файлов относятся к приложениям, которые используются для создания программ и видеоигр.

    CFile также относится к классам файлов Microsoft Foundation Class, но не имеет ничего общего с форматами файлов исходного кода, описанными здесь.

    Как открыть файл C

    Любой текстовый редактор, например Notepad ++, Emacs, программа Windows Notepad, EditPlus, TextMate и другие, может открывать и просматривать файл C, если это файл исходного кода C / C ++.

    Эти программы полезны, потому что они обычно легковесны по сравнению с разработчиками полных приложений, таких как перечисленные ниже.Кроме того, большинство из них поддерживают выделение синтаксиса, что обычно является предпочтительным, поскольку оно значительно упрощает редактирование и анализ исходного кода.

    Однако файлы C обычно открываются в контексте программы разработки программного обеспечения, такой как Visual Studio, Eclipse, C ++ Builder, Dev-C ++ или Code :: Blocks.

    Программа lite-C от Conitec Datasystems является основной программой, используемой для работы с файлами сценария Lite-C, но эти файлы C также могут открываться с помощью текстовых редакторов.

    Как конвертировать файлы C

    Существует ряд преобразований, связанных с C и C ++, но они выходят за рамки данной статьи.Например, вы можете использовать язык программирования для преобразования в или из массива символов, целых чисел, строк и т. Д., Но это не относится к самим файлам C, а скорее к функциям, которые эти файлы предоставляют.

    Если это то, что вы ищете, мы рекомендуем посетить другие ресурсы, например Stack Overflow.

    Однако, если вам действительно нужен конвертер файлов C, вы можете использовать любой текстовый редактор или средства открытия файлов C, указанные выше, для преобразования или сохранения файла в другом текстовом формате, таком как TXT или HTML.Скорее всего, они больше не будут использоваться в качестве файлов исходного кода с Eclipse, Dev-C ++ и т. Д., Если они существуют в другом формате файла.

    Существует также ряд конвертеров исходного кода, доступных от Tangible Software Solutions, которые могут конвертировать C ++ в C #, Java или VB. Однако имейте в виду, что бесплатные выпуски ограничены, когда речь идет о количестве строк, которые можно преобразовать за один раз.

    По-прежнему не удается открыть файл?

    Учитывая, что расширение файла C - это всего лишь одна буква, легко спутать другие форматы файлов с файлом C.Это первое, на что следует обратить внимание, если вы не можете открыть файл, потому что вполне вероятно, что вы на самом деле имеете дело не с файлом C.

    Например, если вы пытаетесь просмотреть свой файл с помощью текстового редактора, потому что предполагаете, что это файл с исходным кодом, но ничего не можете прочитать, у вас, вероятно, есть что-то совершенно другое, например файл CAB или CSH.

    CS - очень похожее расширение файла, но оно используется для файлов исходного кода Visual C # и файлов цветовой схемы ColorSchemer Studio.Если у вас есть файл CS, он может нормально открываться программами, поддерживающими файлы C, поскольку это аналогичный формат с содержимым, написанным на языке C Sharp. Однако последний формат файла используется специально с ColorSchemer Studio и не будет работать так же, как файлы C Sharp или C.

    Как видите, в этих и многих других форматах файлов есть буква «C», но это не означает, что они вообще связаны с форматом файлов C, описанным на этой странице.

    Чтобы сделать это еще более запутанным, чем это могло бы быть, расширение файла CSH используется не только как нетекстовый файл в Adobe Photoshop (это файлы пользовательских форм), но и как обычный текстовый файл сценария оболочки C, что означает, что в зависимости от на том, что у вас есть, это может очень хорошо открываться в текстовом редакторе (например, с файлами CS), но это еще не означает, что это файл исходного кода C / C ++ или даже что его можно открыть в каждом перечисленном приложении выше.

    Спасибо, что сообщили нам об этом!

    Расскажите, почему!

    Другой Недостаточно подробностей Сложно понять

    Режимы открытия файлов, текстовые и двоичные файлы в программировании на C

    В этом посте я расскажу о записи в файл на языке C с помощью функции, режимах открытия файлов на языке C, ввод-вывод строк (строк) в файлах: в программировании на C, запись файлов ввода-вывода с помощью программы на C, текстовые файлы. и двоичные файлы в программировании на C, файлы текстового и двоичного режима - новые строки в программировании на C, конец файла, прочитанный в текстовом режиме и файлы двоичного режима, и время и двоичный режим - хранение чисел.

    Запись в файл на языке C с использованием функции:

    Функция fputc () похожа на putch (), потому что для обоих результатов вывода являются символы. Однако функция putch () записывает в VDU, а fputc () записывает в файлы. Файл для записи обозначается ft. Запись продолжается до тех пор, пока все символы из исходного файла не будут записаны в файл назначения.

    Режимы открытия файлов в C:

    Существует много режимов, в которых файл может быть открыт, например, режим r, в котором файл можно читать, но не может быть выполнено добавление.Ниже указаны различные режимы открытия файлов. Также упоминаются задачи, выполняемые функцией fopen () при открытии файла в каждом из этих режимов.

    «r» Находит файл. Если файл открывается успешно, fopen () загружает его в память и устанавливает указатель, который указывает на первый символ в нем. Если файл не открывается fopen () возвращает NULL. Открытый файл находится в режиме только для чтения.
    «w» Находит файл.Если файл существует, его содержимое перезаписывается. Если файл не существует, создается новый файл. Возвращает NULL, если не удается открыть файл. Файл откроется в редактируемом режиме.
    «a» Поиск файла. Если файл открывается успешно, fopen () загружает его в память и устанавливает указатель, указывающий на последний символ в нем. Если файл не существует, создается новый файл. Возвращает NULL, если не удается открыть файл. Возможны операции - добавление нового содержимого в конец файла.
    «r +» Поиск файла. При успешном открытии fopen () загружает его в память и устанавливает указатель, который указывает на первый символ в нем. Возвращает NULL, если не удается открыть файл. Возможные операции - чтение существующего содержимого, запись нового содержимого, изменение существующего содержимого файла.
    «w +» Поиск файла. Если файл существует, его содержимое перезаписывается. Если файл не существует, создается новый файл.Возвращает NULL, если не удается открыть файл. Возможные операции - запись нового содержимого, его чтение и изменение существующего содержимого файла.
    «a +» Поиск файла. Если файл открывается успешно, fopen () загружает его в память и устанавливает указатель w , который указывает на первый символ в нем. Если файл не существует, создается новый файл. Возвращает NULL, если не удается открыть файл. Возможные операции - чтение существующего содержимого, добавление нового содержимого в конец файла.Невозможно изменить существующее содержимое.

    Строка (строка) ввода / вывода в файлах: в программировании на C

    В некоторых ситуациях использование функций ввода-вывода, которые читают или записывают целые строки, может оказаться более эффективным. Чтение или запись строк символов из файлов и в файлы так же просто, как чтение и запись отдельных символов. Ниже приведена программа, которая записывает строку в файл с помощью функции fputs ():

    / * Программа для приема строк с клавиатуры и записи их в файл * /

    #include

    #include

    #include

    void main ()

    {

    ФАЙЛ * fp;

    символьная строка [80];

    fp = fopen («MoreJournals.TXT», «w»);

    , если (fp == NULL)

    {

    put («Файл MoreJournals не открывается»);

    выход (1);

    }

    printf («\ n Пожалуйста, введите несколько строк текста: \ n»);

    в то время как (strlen (получает (строка))> 0)

    {

    фпутов (строка, фп);

    фпутов («\ n», фп);

    }

    fclose (fp);

    }

    Выходные данные для написанной выше программы указаны ниже:

    В MoreJournals.com вы получите статьи, связанные с технологиями.

    Запись файлов ввода-вывода с помощью программы C:

    В этой статье мы обсудим, как читать или записывать числа из файла или в файл соответственно. Для чтения или записи сначала мы организовали разнородные данные вместе в структуру, а затем использовали функции fprint () и fscanf () для чтения / записи из / в файл.

    / * Записывает записи в файл, используя структуру * /

    #include

    #include

    void main ()

    {

    ФАЙЛ * fp;

    символа другой = "Т";

    struct emp

    {

    символьное имя [40];

    int age;

    float bs;

    };

    struct emp e1;

    fp = fopen («EMPLOYEE.DAT», «w»);

    , если (fp == NULL)

    {

    put («Извините, файл не открывается»);

    выход ();

    }

    , а (другой == "T")

    {

    printf («\ nВведите имя, возраст и базовую зарплату сотрудника:»);

    scanf («% s% d% f», e1.имя, & e1.age, & e1.bs);

    fprintf (fp, «% s% d% f \ n», e1.name, e1.age, e1.bs);

    printf («Добавить еще одну запись (Да / Нет)»);

    fflush (стандартный ввод);

    другой = getche ();

    }

    fclose (fp);

    }

    А вот вывод программы…

    Укажите имя, возраст и основную зарплату: Сунил 30 600000

    Добавить другую запись (Да / Нет) N

    Текстовые файлы и двоичные файлы в программировании на C:

    Двоичный файл - это набор байтов.Этот сборник может быть скомпилированной версией программы. Самый простой способ узнать, является ли файл текстовым или двоичным, - открыть этот файл в Turbo C / C ++. ЕСЛИ при открытии файла вы можете интерпретировать то, что отображается, тогда это текстовый файл, иначе это двоичный файл.

    Ниже приведена программа, способная копировать текст, а также двоичные файлы, как показано ниже.

    #include

    #include

    voidmain ()

    {

    ФАЙЛ * fs, * ft;

    int ch;

    fs = fopen («пр1.exe »,« rb »);

    , если (fs == NULL)

    {

    put («Исходный файл не открывается»);

    выход (1);

    }

    футов = fopen («newpr1.exe», «wb»);

    , если (ft == NULL)

    {

    put («Целевой файл не открывается»);

    fclose (fs);

    выход (2);

    }

    , а (1)

    {

    ch = fgetc (fs);

    если (канал == EOF)

    перерыв;

    еще

    fputc (ch, ft);

    }

    fclose (fs);

    fclose (футы);

    }

    Исходный и целевой файлы открываются в режимах «rb» и «wb» соответственно.При открытии файла в текстовом режиме мы можем использовать «r» или «rt», но поскольку текстовый режим является режимом по умолчанию, обычно «t» не упоминается.

    Текст и файлы в двоичном режиме - новые строки в программировании на C:

    В текстовом режиме символ новой строки преобразуется в комбинацию перевода строки возврата каретки перед записью на диск. А также комбинация перевода строки возврата каретки на диске преобразуется в новую строку, когда файл читается программой C, но если файл открывается в двоичном режиме, а не в текстовом режиме, то эти преобразования не будут выполняться.

    Конец файла, прочитанного в текстовом и двоичном режимах, файлы:

    В текстовом режиме специальный символ, значение ASCII которого равно 26, вставляется после последнего символа файла, что означает, что это конец файла. ЕСЛИ этот символ обнаружен в любой точке файла, функция чтения вернет конец файла. Но в файлах двоичного режима такого специального символа нет. Файлы двоичного режима отслеживают конец файла по количеству символов, присутствующих в записи каталога файла.

    Двоичный режим используется только для обратного чтения чисел, существует вероятность того, что сохраненное число может быть 26 (шестнадцатеричное 1A). Если тот же файл открыт для чтения в текстовом режиме, чтение будет прекращено.

    Таким образом, два режима несовместимы. Важно, чтобы файл, который был записан в текстовом режиме, считывался только в текстовом режиме. Точно так же файл, который был записан в двоичном режиме, должен считываться только в двоичном режиме.

    Время по сравнению с двоичным режимом - хранение чисел:

    Fprintf () - единственная функция, которая доступна для хранения чисел в файле на диске.Очень важно понимать, как числовые данные хранятся на диске функцией fprintf (). Символы и строки хранятся по одному символу на байт, число хранится как в памяти, два байта для целых чисел, 4 байта для чисел с плавающей запятой.

    Число хранится в виде строк символов. Таким образом, 1234, хотя он и должен занимать два байта в памяти, но при передаче на диск с помощью fprintf () он будет занимать 4 байта, по одному байту на символ. Для номера с большим количеством цифр потребуется больше места.

    Там, если в файле на диске будет храниться большой объем числовых данных, использование текстового режима может оказаться неэффективным. Решение состоит в том, чтобы открыть файл в двоичном режиме и использовать такие функции, как fread и fwrite, которые хранят числа в двоичном формате. Это означает, что каждое число будет занимать на диске то же количество байтов, что и в памяти.

    14.6 - Режимы открытия файлов

    14.6 РЕЖИМЫ ОТКРЫТИЯ ФАЙЛОВ

    Если мы хотим открыть файл, операционная система хочет знать, каким именно образом файл должен реагировать на различные команды (функции).Для этого в компиляторе указываются различные режимы открытия файлов. В таблице 14.1 приведены различные режимы, поддерживаемые C ++.

    Таблица 14.1 Режимы файлов

    Старший № Открытый режим Описание
    1 в Открыта для чтения
    2 из Открыт для записи
    3 съел Перейти к концу файла при открытии оригинала
    4 приложение Режим добавления
    5 усечение Обрезать файл, если он уже существует
    6 nocreate Ошибка открытия, если файл не существует
    7 noreplace Ошибка открытия, если файл уже существует
    8 двоичный Открывает файл как двоичный

    Подробное объяснение файловых режимов следующее.

    1. ( в ) Этот режим должен быть указан для входных файлов.
    2. ( из ) Этот режим ...

    Python - чтение и запись файлов

    В Python модуль ввода-вывода предоставляет методы трех типов операций ввода-вывода; необработанные двоичные файлы, буферизованные двоичные файлы и текстовые файлы. Канонический способ создания файлового объекта - использовать функцию open () .

    Любые файловые операции можно выполнить в следующие три шага:

    1. Откройте файл, чтобы получить объект файла с помощью встроенной функции open ().Существуют различные режимы доступа, которые вы можете указать при открытии файла с помощью функции open ().
    2. Выполняет операции чтения, записи и добавления, используя объект файла, полученный функцией open () .
    3. Закройте и удалите файловый объект.

    Чтение файла

    Файловый объект включает следующие методы для чтения данных из файла.

    • read (chars): читает указанное количество символов, начиная с текущей позиции.
    • readline (): читает символы, начиная с текущей позиции чтения до символа новой строки.
    • readlines (): читает все строки до конца файла и возвращает объект списка.

    Следующий файл C: \ myfile.txt будет использоваться во всех примерах чтения и записи файлов.

      Это первая строка.Это вторая строка.
    Это третья строка.
      

    В следующем примере выполняется операция чтения с использованием метода read (chars) .

      >>> f = open ('C: \ myfile.txt') # открытие файла
    >>> lines = f.read () # чтение файла
    >>> линии
    «Это первая строка. \ nЭто вторая строка. \ nЭто третья строка. '
    >>> f.close () # закрытие файлового объекта
      

    Выше f = open ('C: \ myfile.txt ') открывает файл myfile.txt в режиме чтения по умолчанию из текущего каталога и возвращает объект файла. f.read () Функция считывает все содержимое до EOF в виде строки. Если вы укажете аргумент размера символа в методе read (chars) , то он будет читать только это количество символов. f.close () очистит и закроет поток.

    Чтение строки

    В следующем примере показано чтение строки из файла.

      >>> f = open ('C: \ myfile.txt') # открытие файла
    >>> line1 = f.readline () # чтение строки
    >>> line1
    «Это первая строка. \ п '
    >>> line2 = f.readline () # чтение строки
    >>> line2
    'Это вторая строка. \ N'
    >>> line3 = f.readline () # чтение строки
    >>> line3
    «Это третья строка».
    >>> line4 = f.readline () # чтение строки
    >>> line4
    ''
    >>> е.close () # закрытие файлового объекта
      

    Как видите, нам нужно открыть файл в режиме 'r' . Метод readline () вернет первую строку, а затем укажет на вторую строку в файле.

    Чтение всех строк

    Следующий код считывает все строки с помощью функции readlines () .

      >>> f = open ('C: \ myfile.txt') # открытие файла
    >>> lines = f.readlines () # чтение всех строк
    >>> линии
    «Это первая строка. \ nЭто вторая строка. \ nЭто третья строка. '
    >>> f.close () # закрытие файлового объекта
      

    Файловый объект имеет встроенный итератор. Следующая программа читает данный файл построчно, пока не будет поднято значение StopIteration , то есть не будет достигнут EOF.

      f = open ('C: \ myfile.текст')
    в то время как True:
        пытаться:
            строка = следующий (е)
            печать (строка)
        кроме StopIteration:
            перерыв
    f.close ()
      

    Используйте цикл for, чтобы легко прочитать файл.

      f = открытый ('C: \ myfile.txt')
    для строки в f:
        печать (строка)
    f.close ()
      
      Это первая строка.
    Это вторая строка.Это третья строка.
      

    Чтение двоичного файла

    Используйте режим 'rb' в функции open () для чтения двоичных файлов, как показано ниже.

      >>> f = open ('C: \ myimg.png', 'rb') # открытие двоичного файла
    >>> content = f.read () # чтение всех строк
    >>> содержание
    б '\ x89PNG \ r \ n \ x1a \ n \ x00 \ x00 \ x00 \ rIHDR \ x00 \ x00 \ x00 \ x08 \ x00 \ x00 \ x00 \ x08 \ x08 \ x06
    \ x00 \ x00 \ x00 \ xc4 \ x0f \ xbe \ x8b \ x00 \ x00 \ x00 \ x19tEXtSoftware \ x00Adobe ImageReadyq
    \ xc9e \ x00 \ x00 \ x00 \ x8dIDATx \ xdab \ xfc \ xff \ xff? \ x03 \ x0c0 / zP \ n \ xa4b \ x818 \ xeco \ x9c
    \ xc2 \ r \ x90 \ x18 \ x13 \ x03 * 8 \ t \ xc4b \ xbc \ x01 \ xa8X \ x07 $ \ xc0 \ xc8 \ xb4 \ xf0> \\\ x11P \ xd7?
    \ xa0 \ x84 \ r \ x90 \ xb9 \ t \ x88? \ x00q H \ xc1C \ x16 \ xc9 \ x94_ \ xcc \ x025 \ xfd2 \ x88 \ xb1 \ x04
    \ x88 \ x85 \ x90 \ x14 \ xfc \ x05 \ xe2 (\ x16 \ x00 \ xe2 \ xc3 \ x8c \ xc8 \ x8e \ x84: \ xb4 \ x04H5 \ x03
    \ xf1 \\.bD \ xf3E \ x01 \ x90 \ xea \ x07 \ xe2 \ xd9 \ xaeB` \ x82 '
    >>> f.close () # закрытие файлового объекта
      

    Запись в файл

    Файловый объект предоставляет следующие методы записи в файл.

    • запись (и): записать строку s в поток и вернуть количество записанных символов.
    • строк записи (строк): записать список строк в поток. В конце каждой строки должен быть разделитель.

    Создать новый файл и записать

    Следующий код создает новый файл, если он не существует, или заменяет существующий файл.

      >>> f = open ('C: \ myfile.txt', 'w')
    >>> f.write ("Hello") # запись в файл
    5
    >>> f.close ()
    
    # чтение файла
    >>> f = open ('C: \ myfile.txt', 'r')
    >>> f.read ()
    'Привет'
    >>> f.close ()
      

    В приведенном выше примере f = open ("myfile.txt "," w ") Оператор открывает myfile.txt в режиме записи, метод open () возвращает объект файла и присваивает его переменной f . 'w' указывает, что файл должен быть доступен для записи. Затем f.write («Привет») перезаписывает существующее содержимое файла myfile.txt . Он возвращает количество символов, записанных в файл, которое в приведенном выше примере равно 5. В конце f.close () закрывает файловый объект.

    Добавление к существующему файлу

    Следующий код добавляет содержимое в конец существующего файла, передавая 'a' или 'a +' mode в методе open () .

      >>> f = open ('C: \ myfile.txt', 'a')
    >>> f.write ("Мир!")
    7
    >>> f.close ()
    
    # чтение файла
    >>> f = open ('C: \ myfile.txt', 'r')
    >>> е.читать()
    'Привет мир!'
    >>> f.close ()
      

    Запись нескольких строк

    Python предоставляет метод writelines () для сохранения содержимого объекта списка в файл. Поскольку символ новой строки не записывается в файл автоматически, он должен быть указан как часть строки.

      >>> lines = ["Hello world. \ N", "Добро пожаловать в TutorialsTeacher.\ n "]
    >>> f = open ("D: \ myfile.txt", "w")
    >>> f.writelines (строки)
    >>> f.close ()
      

    Открытие файла в режиме «w» или «a» может быть только записано, но не может быть прочитано. Точно так же режим «r» позволяет только чтение, но не запись. Для одновременного выполнения операций чтения / добавления используйте режим «a +».

    Запись в двоичный файл

    Функция open () по умолчанию открывает файл в текстовом формате.Чтобы открыть файл в двоичном формате, добавьте 'b' к параметру режима. Следовательно, режим «rb» открывает файл в двоичном формате для чтения, а режим «wb» открывает файл в двоичном формате для записи. В отличие от текстовых файлов, двоичные файлы не читаются человеком. При открытии с помощью любого текстового редактора данные невозможно распознать.

    Следующий код хранит список чисел в двоичном файле. Перед записью список сначала преобразуется в байтовый массив.Встроенная функция bytearray () возвращает байтовое представление объекта.

      f = open ("binfile.bin", "wb")
    число = [5, 10, 15, 20, 25]
    arr = bytearray (число)
    f.write (обр.)
    f.close ()
      

    Открыть файл или получить информацию об открытых файлах

    Тип доступа к файлу, заданный как вектор символов или строка скаляр. Вы можете открыть файл в двоичном или текстовом режиме. В системах UNIX оба режима перевода имеют одинаковый эффект.Чтобы открыть файл в двоичном формате mode укажите одно из следующих значений.

    'r'

    Открыть файл для чтения.

    'w'

    Откройте или создайте новый файл для записи. Отменить существующие содержимое, если таковое имеется.

    'a'

    Открыть или создать новый файл для записи. Добавить данные в конец файла.

    'r +'

    Открыть файл для чтения и записи.

    'w +'

    Открыть или создать новый файл для чтения и записи. Отказаться существующее содержимое, если таковое имеется.

    'a +'

    Открыть или создать новый файл для чтения и записи. Добавить данные в конец файла.

    'A'

    Открытый файл для добавления без автоматической промывки текущий выходной буфер.

    'W'

    Открытый файл для записи без автоматической промывки текущий выходной буфер.

    Чтобы открывать файлы в текстовом режиме, прикрепите букву 't' к аргумент разрешения , например 'rt' или 'wt +' .

    В системах Windows ® , в текстовом режиме:

    • Операции чтения, встречающие возврат каретки, следовали символом новой строки ( '\ r \ n' ) удалить каретку возврат со входа.

    • Операции записи вставляют возврат каретки перед любым символ новой строки в выводе.

    Откройте или создайте новый файл в текстовом режиме, если хотите написать к нему в MATLAB, а затем откройте его в Блокноте Microsoft ® или любой текстовый редактор, который не распознает '\ n' как последовательность новой строки. При записи в файл завершайте каждую строку '\ r \ n' . Для примера см. fprintf . В противном случае открывайте файлы в двоичном режиме для повышения производительности.

    Для чтения и записи в один и тот же файл:

    • Откройте файл со значением разрешения , которое включает знак плюса, '+' .

    • Позвоните по телефону fseek или frewind между операции чтения и записи. Например, не называть fread followed на fwrite или fwrite с последующим от fread , если вы не звоните fseek или frewind между их.

    Типы данных: char | строка

    Открытие файлов с помощью IDL_FileOpen ()

    Открытие файлов с помощью IDL_FileOpen ()

    IDL_FileOpen ()


     int IDL_FileOpen (int argc, IDL_VPTR * argv, char * argk, 
     int access_mode, IDL_SFILE_FLAGS_T extra_flags, 
     интервал longjmp_safe, интервал msg_attr) 

    IDL_FileOpen () возвращает TRUE, если файл был успешно открыт, и FALSE в противном случае.

    Примечание: Если longjmp_safe имеет значение ИСТИНА, обычно выполняется возврат к интерпретатору IDL, и в этом случае процедура не вернется.

    argc

    Количество аргументов в argv. Это значение всегда должно быть 2.

    argv

    Аргументы для IDL_File_Open (). argv [0] должен быть скалярным целым числом, дающим номер файлового модуля (LUN), который нужно открыть. argv [1] - это скалярная строка, дающая имя файла.

    argk

    Ключевые слова. Установите для этого аргумента значение NULL.

    режим_доступа

    Битовая маска, определяющая разрешенный доступ к открываемому файлу. Допустимые значения битов перечислены в следующей таблице:

    • IDL_OPEN_R : файл открыт для ввода.
    • IDL_OPEN_W : файл открыт для вывода.
    • IDL_OPEN_TRUNC : файл был усечен при открытии. Это означает, что IDL_OPEN_W также установлен.
    • IDL_OPEN_APND : файл был открыт с указателем файла, установленным сразу за последним байтом данных в файле (файл открыт для добавления).

    Конфликтующие биты не должны устанавливаться вместе (например, не указывайте IDL_OPEN_TRUNC | IDL_OPEN_APND ).Кроме того, всегда необходимо указывать один или оба из IDL_OPEN_R и IDL_OPEN_W .

    extra_flags

    Используется для указания дополнительных атрибутов файла с использованием флагов, определенных в описании поля флагов структуры IDL_FILE_STAT (см. Информацию о файле). Обратите внимание, что некоторые флаги устанавливаются IDL на основе фактических атрибутов открытого файла (например, IDL_F_ISTTY ) и что нет смысла устанавливать такие флаги в этой маске.

    Если вы намереваетесь использовать открытый файл в качестве файла потока стандартного ввода-вывода C (stdio), вы должны указать IDL_F_STDIO флаг при вызове IDL_FileOpen () . В противном случае IDL может решить не использовать stdio.

    longjmp_safe

    Если установлено значение TRUE, IDL_FileOpen () вызывается в контексте, где код действия IDL_MSG_LONGJMP IDL_Message допустим. Если установлено значение FALSE, процедура не будет longjmp ().

    IDL_FileOpen () возвращает TRUE, если файл был успешно открыт, и FALSE в противном случае. Если longjmp_safe имеет значение ИСТИНА, обычно выполняется возврат к интерпретатору IDL, и в этом случае процедура не вернется.

    msg_attr

    Ноль (0) или любая комбинация флагов IDL_MSG_ATTR_ , используемых для точной настройки обработки ошибок, указанной аргументом longjmp_safe. Обратите внимание, что вы не должны указывать ни один из базовых кодов IDL_MSG_ , а только атрибуты.Базовый код (например, IDL_MSG_LONGJMP ) определяется значением longjmp_safe. Для обсуждения IDL_MSG_ATTR_ f лагов см. Выдачу сообщений об ошибках.

    Специальные файловые блоки


    Три файла всегда открыты. Эти три единицы:

    • IDL_STDIN_UNIT : Единица 0 (ноль) является стандартным вводом для процесса IDL.
Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *