У меня была та же проблема, и я нашел это решение:
if($("input[name='yourcheckbox']").is(':checked')) {
console.log('chb checked');
} else {
console.log('chb not checked');
}
Существует официальный технический отчет ISO / IEC JTC1 / SC22 / WG14 (язык C) TR24731-1 (интерфейсы проверки границ) и его обоснование доступно по адресу:
Также ведется работа над TR24731-2 (функции динамического распределения).
Заявленное обоснование для fopen_s ()
:
6.5.2 Функции доступа к файлу
При создании файла функции
fopen_s
иfreopen_s
повышают безопасность, защищая файл от несанкционированного доступа, задавая его файл защиты и открытия файла с монопольным доступом.
В спецификации говорится:
#define __STDC_WANT_LIB_EXT1__ 1
#include <stdio.h>
errno_t fopen_s(FILE * restrict * restrict streamptr,
const char * restrict filename,
const char * restrict mode);
Ни один из streamptr
, ] имя файла
,или режим
должен быть нулевым указателем.
Если есть нарушение ограничения времени выполнения, fopen_s
не пытается открыть файл.
Кроме того, если streamptr
не является нулевым указателем, fopen_s
устанавливает * streamptr
в
нулевой указатель.
Функция
fopen_s
открывает файл, имя которого является строкой, на которую указываетfilename
и связывает с ним поток.Строка режима должна быть такой, как описано для
fopen
, с добавлением, что режимы запускаются с символом 'w' или 'a' может предшествовать символ 'u', см. ниже:
uw
обрезать до нулевой длины или создать текстовый файл для записи, разрешения по умолчаниюua
добавить; открыть или создать текстовый файл для записи в конце файла, разрешения по умолчаниюuwb
обрезать до нулевой длины или создать двоичный файл для записи, разрешения по умолчаниюuab
добавить; открыть или создать двоичный файл для записи в конце файла, по умолчанию разрешенияuw +
обрезать до нулевой длины или создать текстовый файл для обновления, разрешения по умолчаниюua +
добавить; открыть или создать текстовый файл для обновления, запись в конце файла, по умолчанию разрешенияuw + b
илиuwb +
обрезать до нулевой длины или создать двоичный файл для обновления, по умолчанию разрешенияua + b
илиuab +
append; открыть или создать двоичный файл для обновления, записывая в конец файла, разрешения по умолчаниюВ той степени, в которой базовая система поддерживает концепции, файлы открываются для записи должен быть открыт с эксклюзивным (также известным как неразделенный) доступом. Если файл создан, а первым символом строки режима не является 'u', поскольку базовая система поддерживает это, файл должен иметь права доступа, которые предотвращают другие пользователи системы от доступа к файлу. Если файл создается и первый символ строки режима - 'u', то к моменту закрытия файла он должен иметь системные разрешения доступа к файлам по умолчанию 10) .
Если файл был открыт успешно, то указатель на
ФАЙЛ
указывает наstreamptr
будет установлен указатель на объект, контролирующий открытый файл. В противном случае указатель вФАЙЛ
, на который указываетstreamptr
, будет установлен нулевой указатель.Возвращает
Функция
fopen_s
возвращает ноль, если она открывала файл. Если он не открыл файл или если произошло нарушение ограничения времени выполнения,fopen_s
возвращает ненулевое значение.10) Это те же разрешения, с которыми файл был бы создан с помощью fopen.
Вы можете использовать fopen ()
. Серьезно, не обращайте внимания на Microsoft здесь, они оказывают программистам медвежью услугу, отклоняясь от стандартов ISO. Они, кажется, думают, что люди, пишущие код, каким-то образом лишены мозгов и не знают, как проверять параметры перед вызовом библиотечных функций.
Если кто-то не желает изучать тонкости программирования на C, ему действительно нечего делать. Это. Им следует перейти на более безопасный язык.
Похоже, это просто еще одна попытка Microsoft ограничить поставщиков разработчиками (хотя они не единственные, кто пробует это, поэтому я не ругаю их конкретно) . Обычно я добавляю:
#define _CRT_SECURE_NO_WARNINGS
(или вариант "- D"
в командной строке) в большинство своих проектов, чтобы убедиться, что я m не беспокоится о компиляторе при написании совершенно правильного, допустимого кода C.
Microsoft предоставила дополнительные функции в функции fopen_s ()
(кодировки файлов, например), а также изменение способа возврата . Это может сделать его лучше для программистов Windows, но делает код по сути непереносимым.
Если вы собираетесь писать код только для Windows, обязательно используйте его. Я сам предпочитаю возможность компилировать и запускать мой код где угодно (с минимальными изменениями).
Начиная с C11, эти безопасные функции теперь являются частью стандарта, хотя и являются необязательными. Более подробную информацию см. В Приложении К.
Это может сделать его лучше для программистов Windows, но делает код по сути непереносимым.Если вы собираетесь писать код только для Windows, обязательно используйте его. Я сам предпочитаю возможность компилировать и запускать мой код где угодно (с минимальными изменениями).
Начиная с C11, эти безопасные функции теперь являются частью стандарта, хотя и являются необязательными. Более подробную информацию см. В Приложении К.
Это может сделать его лучше для программистов Windows, но делает код по сути непереносимым.Если вы собираетесь писать код только для Windows, обязательно используйте его. Я сам предпочитаю возможность компилировать и запускать мой код где угодно (с минимальными изменениями).
Начиная с C11, эти безопасные функции теперь являются частью стандарта, хотя и являются необязательными. Более подробную информацию см. В Приложении К.
Или это что-то еще?
В некоторых реализациях структуры FILE, используемой fopen, файловый дескриптор определен как unsigned short. Это оставляет вас с максимумом 255 одновременно открытых файлов, минус стандартный ввод, стандартный вывод и стандартный поток ошибок.
В то время как значение быть в состоянии иметь 255 открытых файлов спорно, конечно, эта деталь реализации материализуется на платформе Solaris 8, когда у вас более 252 разъемов ! То, что сначала показалось кажущейся случайной неудачей при установлении SSL-соединения с использованием libcurl в моем приложении, оказалось вызвано этим, но потребовалось развернуть отладочные версии libcurl и openssl и провести клиента через сценарий отладчика, чтобы наконец понять это.
Хотя это не полностью вина fopen, можно увидеть достоинства сброса оков старых интерфейсов; решение отказаться от рекомендаций может быть основано на том, что поддерживать двоичную совместимость с устаревшей реализацией сложно.
В новых версиях выполняется проверка параметров , а в старых - нет.
См. этот поток SO для получения дополнительной информации.
Безопасность потоков. fopen ()
использует глобальную переменную errno
, тогда как замена fopen_s ()
возвращает errno_t
и принимает FILE **
аргумент для хранения указателя файла.
По сути, это означает, что файлы, которые записывает приложение, по умолчанию защищены от других пользователей.
Они не сделали этого с fopen ()
из-за вероятности того, что существующий код сломается.
Microsoft решила отказаться от fopen ()
, чтобы побудить разработчиков Windows принимать осознанные решения о том, будут ли файлы, используемые их приложениями, иметь свободные права доступа или нет.
Ответ Джонатана Леффлера обеспечивает предлагаемую стандартизацию. язык для fopen_s ()
. Я добавил этот ответ, надеясь прояснить обоснование.
Microsoft решила отказаться от использования fopen ()
, чтобы побудить разработчиков Windows принимать осознанные решения о том, будут ли файлы, используемые их приложениями, иметь свободные права доступа или нет.
Ответ Джонатана Леффлера обеспечивает предлагаемый язык стандартизации для fopen_s ()
. Я добавил этот ответ, надеясь прояснить обоснование.
Microsoft решила отказаться от использования fopen ()
, чтобы побудить разработчиков Windows принимать осознанные решения о том, будут ли файлы, используемые их приложениями, иметь свободные права доступа или нет.
Ответ Джонатана Леффлера обеспечивает предлагаемый язык стандартизации для fopen_s ()
. Я добавил этот ответ, надеясь прояснить обоснование.