c- все статьи тега
Как динамически создавать и читать структуры в C?
Как я могу сделать что-то подобное (просто пример): any_struct *my_struct = create_struct(); add_struct_member(my_struct, "a", int_member); add_struct_member(my_struct, "b", float_member); Чтобы я мог загрузить и использовать экземпляр struct "извне" (по адресу addressOfMyStruct) с данной структурой здесь? any_struct_instance *instance = instance(my_struct, addressOfMyStruct); int a = instance_get_member(instance, "a"); float b = instance_get_member(instance, "b"); Я также хотел бы иметь ...
При каких обстоятельствах Мэллок может вернуть NULL?
Со мной такого никогда не случалось, и я программирую уже много лет. Может ли кто-нибудь привести мне пример нетривиальной программы, в которой malloc фактически не будет работать? я не говорю об исчерпании памяти : я ищу простой случай, когда вы выделяете только один блок памяти в ограниченном размере, заданном пользователем, скажем целое число, вызывает сбой malloc. ...
Как получить абсолютный путь для данного относительного пути программно в Linux?
Как получить абсолютный путь для данного относительного пути программно в Linux? В случае Windows у нас есть _fullpath() API. Другими словами, Я имею в виду, что такое аналогичный API для _fullpath Windows в Linux? ...
Служат ли const char * и strdup одной и той же функции при использовании с getopt в C?
В приведенном ниже фрагменте кода могу ли я заменить char * на const char * и удалить вызов функции strdup () и непосредственно принять значение optarg, установленное getopt ()? Я советую использовать const char *, чтобы пропустить использование функции strdup. Заранее благодарен за помощь. /* Code Snippet */ char *dir = NULL; char *bld = NULL; int chr; while ( ( chr = getopt( argc, argv, "d:a:b:f:" ) ) != -1 ) { switch ( chr ) { case 'd': //Directory parameter dir = strdup( optarg ); ...
Путает аргументы одиночного указателя и двойного указателя в вызовах функций
Я пытаюсь получить более глубокое понимание аргументов указателей в функциях для C. я написал тестовую программу, чтобы попытаться увидеть разницу между передачей одного указателя и двойного указателя на функцию, а затем изменить ее. У меня есть программа, которая имеет две функции. Первая функция modifyMe1 принимает единственный указатель в качестве аргумента и изменяет свойство a на 7. Вторая функция modifyMe2 принимает двойной указатель в качестве аргумента и изменяет свойство a на 7. I ож ...
Как проверить код BCH (15,11,1) / контрольную сумму для спутниковой системы BDS / Beidou
В PDF http://www.beidou.gov.cn/attach/2012/12/27/201212273da29c5eb8274deb8cd2b178228ba2bd.pdf Глава 5 (стр. 9 и далее) ВСН(15,11,1) код для системы Beidou описано. Я пытаюсь реализовать использование этого кода для проверки ошибок (т. е. я хочу только проверить информацию о четности - мне не нужна возможность исправления ошибок). В идеале я ищу процедуру, которая получает 15 битов и возвращает соответствующие 4 бита четности. Я проверил следующий код, но не мог заставить его делать то, что я х ...
Могу ли я исключить, что SIGBUS вызван "незначительной ошибкой страницы"? (В журнале ядра нет сбоя выделения ресурсов)
Мотивация Я пытаюсь улучшить свое понимание ошибкиSIGBUS в Xwayland . Это было замечено несколькими пользователями Fedora Linux примерно с 20 февраля 2018 года, с Xwayland 1.19.6-5.fc27.x86_64 и ядром Linux 4.15.3-300.fc27.x86-64. К сожалению, у меня нетядра "segfault" log message (или эквивалента для SIGBUS). Xwayland имеет какой-то беспредметный код, который ловушки роковой сигнал. Но я могу видеть.siginfo путем отладки coredump, и это, кажется, будет почти так же хорошо. Определение ...
Как получить время выполнения программы в миллисекундах на языке Си?
В настоящее время я получаю время выполнения моей программы в секундах, вызывая: time_t startTime = time(NULL); //section of code time_t endTime = time(NULL); double duration = difftime(endTime, startTime); Можно ли получить время стены в миллисекундах ? Если да, то как? ...
статические и внешние встроенные функции в C [дубликат]
На этот вопрос уже есть ответ здесь: в чем разница между статической встроенной, внешней встроенной и обычной встроенной функцией? 1 ответ Я пытаюсь подробно изучить разницу между статическими и внешними функциями. Я знаю основное различие между статическими и внешними встроенными функциями. Пожалуйста, исправьте мой понимание, если это неправильно: статические встроенные функции видны только той ...
стоит ли компилировать программу на языке Си и запускать ее вместо страницы PHP?
Похоже, что большую часть времени набранная скорость не стоит того - так ли это? в противном случае многие люди будут делать это для своей самой популярной страницы. Есть ли реальная польза от использования программы на языке Си? Я могу представить себе случай, когда это не важно: когда узкое место Сети на сервере значительно больше, чем узкое место процессора, то скорость выполнения программы становится менее важной. ...
98-й вызов функции pthread create() завершается ошибкой
Я запускаю следующую программу. Он просто создает нити, которые сразу же умирают. Я обнаружил, что после 93-98 (это немного отличается) успешных вызовов, каждый следующий вызов pthread_create () завершается ошибкой 11: ресурс временно недоступен. Я думаю, что правильно закрываю поток, поэтому он должен отказаться от любых ресурсов, которые у него есть, но некоторые ресурсы становятся недоступными. Первый параметр программы позволяет мне установить интервал между вызовами в pthread_create() но ...
Где хранятся адреса указателей в языке Си?
Я изучаю C и в настоящее время изучаю указатели. Я понимаю принцип хранения адреса байта в памяти как переменной, что позволяет получить байт из памяти и записать его в адрес памяти. Однако я не понимаю, где хранится адрес указателя. Допустим, значение указателя (адрес байта в памяти) хранится где - то в памяти-как программа может знать, где хранится указатель? Разве для этого не нужен указатель? указатель, приводящий к бесконечным указателям для указателей для указателей... ? Обновить Фак ...
"время жизни" строкового литерала в языке Си
Разве указатель, возвращаемый следующей функцией, не будет недоступен? char *foo( int rc ) { switch (rc) { case 1: return("one"); case 2: return("two"); default: return("whatever"); } } Таким образом, время жизни локальной переменной в C/C++ практически находится только в пределах функции, верно? Что означает, что после завершения char* foo(int) указатель, который он возвращает, больше ничего не значит? Меня немного смущает продол ...
Почему TaskSpawn принимает ints вместо void*?
Для операционной системы vxWorks они предоставляют системную библиотеку для порождения задач: int taskSpawn ( char * name, /* name of new task (stored at pStackBase) */ int priority, /* priority of new task */ int options, /* task option word */ int stackSize, /* size (bytes) of stack needed plus name */ FUNCPTR entryPt, /* entry point of new task */ int arg1, /* 1st of 10 req'd task args to p ...
snprintf, для преобразования целого числа в строку в C
У меня есть небольшой фрагмент кода для преобразования целого числа в строку в c. Код должен работать как на 32-битной, так и на 64-битной платформе. Я разбираю аргументы в цикле, поэтому мне нужен malloc для создания буфера int tmp_integer = /*read as integer*/ char* tmp_string = malloc(20* sizeof(char)); /*enough room for the biggest integer*/ snprintf(tmp_string, 20,"%d",tmp_integer); /*can I avoid using 20 here*/ a[i - 1] = tmp_string; /*save the parsed argument for final usage*/ Мой во ...
Конвертер Java/C/C++/C#/PHP в Pascal? [закрытый]
Кто-нибудь знает, есть ли конвертер Java/C/C++/C#/PHP в Pascal? ...
C-Программирование (K&R 1-22) сложите входную задачу
Я программист Delphi, Ruby и Javascript, который наконец - то изучает C-начиная с K&R. я изо всех сил стараюсь не забегать вперед и использовать библиотеки и концепции, которые еще не введены. Поскольку это учебник первой главы, я придерживаюсь всего нескольких языковых функций и хотел бы сохранить его таким образом. 1-22 для незнакомого: Напишите программу, чтобы `сложить" длинные ввод строк в две или более коротких строки после последней непустой строки характер, который возника ...
Как использовать CoreAudio API в Swift
Я нахожусь в процессе миграции моего потокового аудио двигателя на swift. мне трудно использовать C Audio API в swift. У меня есть проблема с AudioFileStreamOpen api, где он принимает 2 функции C в качестве параметра. Я не знаю, как использовать этот API swift. AudioFileStreamOpen(self as UnsafePointer<()>, propertyProc, packetProc, kAudioFileMP3Type, audioStreamId) Я определил метод обратного вызова, как показано ниже для этого API. Но я получаю ошибку компиляции. func propertyProc(i ...
Python & C / C++ многопоточность: запуск нескольких потоков, выполняющих python в фоновом режиме C
У меня есть очень специфическая потребность : Я хочу создать консоль python с виджетом Qt и иметь возможность иметь несколько независимых интерпретаторов. Теперь позвольте мне попытаться объяснить, где мои проблемы и все попытки, которые я сделал, в порядке тех, которые я больше всего хотел бы сделать работающими с теми, которые я могу использовать по умолчанию Первый момент заключается в том, что все функции в Python C API (PyRun[...], Пьеваль[...] ...) нужно, чтобы GIL был заблокирован, чт ...
Сортировка значений из argv
У меня есть потерянные строки в argv, и я хотел бы их отсортировать. Я делаю то же самое с strcmp и strcpy. Как я могу преобразовать const char** в массив char, который я могу использовать в своей функции сортировки? void sort(const char** sl, int n) { char s[n][20], t[20]; int i, j; for (i = 1; i < n; i++) { for (j = 1; j < n; j++) { if (strcmp(s[j - 1], s[j]) > 0) { strcpy(t, s[j - 1]); strcpy(s[j - 1], s[j]); strcpy(s[j] ...