Этого треда уже нет.
Это копия, сохраненная 9 марта 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
C Propaganda.jpg1,9 Мб, 2000x2610
C Programming Language #60 /clang/ # OP 1772290 В конец треда | Веб
Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

Пожалуйста, пользуйтесь https://ideone.com/, https://wandbox.org/ или https://pastebin.com/ для вставки кода, если он длиной больше нескольких строк или содержит [​i​] или ∗.

Что читать:

- Brian Kernighan, Dennis Ritchie "The C Programming Language": http://www.cypress.com/file/56651/download
- Stephen Prata "C Primer Plus, 6th Edition" (2014): относительно свежая, знает про C89/C99/C11, описывает различия, объемная (около тысячи страниц), годная, с вопросами, упражнениями и ответами. Читать после K&R или до.
- Zed A. Shaw "Learn C the Hard Way" (2015): годное пособие для гуманитариев для гуманитариев!
- Немного примеров хорошего стиля: http://www.oualline.com/books.free/style/index.html
- ООП, например: http://www.cs.rit.edu/~ats/books/ooc.pdf
- Стандарт ISO/IEC 9899:1999 (C99): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf (драфт)
- Стандарт ISO/IEC 9899:2011 (C11): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf (драфт)
- Черновик стандарта ISO/IEC 9899:202x (C2x): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2479.pdf (февраль 2020, с диффами)

Чем компилировать:

- Очевидный GCC.
- clang: оче годно, батя рекомендует.
- Intel C++ Compiler: оптимизации, тысячи их.
- Visual Studio Community Edition: внезапно этим стало можно пользоваться, особенно с тулсетом clang/C2. Поддержка C11 на уровне "есть все, что тебе понадобится в реальном проекте плюс кривая библиотека". Анализатор кода в комплекте.
- Pelles C (шиндоуз онли): поучиться, вкатиться в C11 (стандарт полностью реализован, имеются в том числе threads.h и прочие stdatomic.h), но количество багов в оптимизаторе и редкие апдейты напрочь отбивают желание собирать этим что-то сколько-нибудь серьезное.
- TCC: очень маленький компилятор с багами и поддержкой C99. С ключом -run умеет компилировать код в память и запускать его, что позволяет писать скрипты прямо на сишечке.

Что еще почитать:

http://c-faq.com/
FAQ из comp.lang.c. Древний, но все еще актуален.

Samuel P. Harbison, Guy L. Steele Jr. "C: A Reference Manual, 5th Edition" (2002)
Ебаный пересказ стандартов C89 и C99 (включая стандартную библиотеку). Для не осиливающих стандарт в оригинале. Читать в качестве подготовки к собеседованиям (есть задачник с ответами) и для ознакомления с масштабами пиздеца перед написанием своего парсера/компилера.

Peter Van Der Linden "Expert C Programming. Deep C Secrets" (1994)
"Си: грязные истории". Смехуечки, немного объяснений, чем обусловлены особенности языка, всем известные подводные камни кто там ругал косяки в JS? у нас в сишечке их гораздо больше, просто они лучше спрятаны, немного байтоебли и непонятно откуда взявшаяся глава про старинные плюсы. Читать в качестве сказки на ночь (на пару вечеров хватит).

Richard M. Reese "Understanding and Using C Pointers. Core Techniques for Memory Management" (2013) - почитать, вкатиться в указатели.

Ben Klemens "21st Century C: C Tips from the New School" (2012)

Paul Deitel, Harvey Deitel "C for Programmers with an Introduction to C11" (2013)

Stephen G. Koch@n "Programming in C (3rd Edition или 4th Edition, если найдется)" (2014)

MISRA Ltd. "Guidelines for the Use of the C Language in Critical Systems" (2013)
Набор рекомендаций по написанию надежного кода на C (промышленный стандарт). Читать - однозначно, следовать - вдумчиво и без фанатизма. Также можно посмотреть https://www.securecoding.cert.org/confluence/display/c/SEI+CERT+C+Coding+Standard и http://web.archive.org/web/20190213011655/homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-c-style.pdf

Еще более длинный список: http://www.iso-9899.info/wiki/Books#Learning_C

https://github.com/kozross/awesome-c

Онлайн-утилиты:

- https://godbolt.org/ - Compiler Explorer позволяет посмотреть выхлоп компиляторов для введенного куска кода (больше полусотни разных версий компиляторов).
- http://cdecl.org/ - С Gibberish ↔ English помогает читать сложные сишные декларации.

Прошлые треды:

- №57: http://arhivach.ng/thread/563334/
- №58: http://arhivach.ng/thread/573804/
- №59: http://arhivach.ng/thread/597021/ >>1754859 (OP)
2 1772363
Правда ли, что на Си, скорее всего, написано больше всего из ныне существующего кода на пданете Земля? И это первый и самый весомый аргумент бессмертия Сишечки как ЯПа, со всеми его недостатками? Так как переписывать несколько сотен миллиардов строк кода никто не будет, очевидно.
3 1772367
>>72363
Несколько сотен миллиардов не будет, а 50 тыс строк — вполне будет. Так и наберется пара тысяч анонов на весь мир, которые в итоге все что будет нужно перепишут.
4 1772369
>>72363
Думаю на Бейсике (всех диалектов) и Паскале (+дельфи) написано побольше.
5 1772373
>>72367
В одном только линуксе миллионов 20 строчек на Си.
6 1772380
>>72367

> 50 тыс строк — вполне будет


Я за 3 года двачевания капчи в нии больше написал.
7 1772385
>>72369
Сильно сомневаюсь.
8 1772389
>>72363
Тут еще сложно определиться, считать ли Сиси++/Си-с-классами/Си-с-расширением-cpp крестами или няшной.
9 1772455
>>72389
Все что компилирует компилятор крестов это кресты. А личные шизоклассификации никому не нужны, они у каждого свои.
10 1772478
>>72385
Я просто помню сколько было только книг по ним. И сколько приложений с говноформами на дельфях и вижуал бейсике. В каждой фирме по нескольку было.
11 1772481
>>72385
Или вот например COBOL который в банках
Bank of New York Mellon, he is responsible for the health and welfare of 112,500 Cobol programs, 343 million lines of code, that run core banking and other operations.
12 1772484
>>72481
343 миллиона против нескольких сотен миллиардов строк кода на Си, лол)
13 1772486
>>72484
Так это только ОДИН банк. Понимаешь?
1503843724485.jpg57 Кб, 630x605
14 1772490
>>72484
Все равно прикладного кода написано в разы больше, чем системного. А если вспомнить, в каком стиле принято писать например на Java, то по такой синтетической метрике как LOC она улетит очень далеко вперед тупо на бойлерплейте
15 1772507
>>72380

> 50 тыс строк


>за 3 года двачевания капчи в нии


Нафиг ты там пахал как не в себя? Тебе там что, 70к платили?
16 1772516
>>72290 (OP)
Поясните, откуда появились зумерки, дрочащие на стандарты и UB?
Раньше, во времена дидов, прогали так - прочитаешь K&R, изучишь стандартную библиотеку, порешаешь задачки и вперед прогать. Диды писали качественный код (в стиле MISRA C) который будет одинаково работать на любом компиляторе и легко читается.
Сейчас же зумерки обмажутся своими стандартами, а потом пишут нечитаемый говно-код, аля:
Z = (X >= Y & Z) ? X * Y + Z : X + Z / Y | Z;
а когда им говоришь, что их код - говно, то они возмущаются и говорят "здесь все по стандарту, ты не шаришь, иди читай стандарт, чтобы понять, что я написал".
Не пойму, откуда они взялись, они перекатились в Си из Джавы или из новомодных параш типо Го и Раста?
17 1772518
Как вывести цветной текст в консоли виндоуса?
18 1772538
>>72516

>Диды писали качественный код (в стиле MISRA C) который будет одинаково работать на любом компиляторе и легко читается.


Ха-ха-ха. Какой бесстыдный манямир. Не обманывай зумеров, урод. То, что какой-то старый код качественный - это ошибка выжившего. За 30 лет хороший и нужный код почистили, а вот те залежи говнокода так и остались в истории.

>а потом пишут нечитаемый говно-код


Диды в их возрасте время писали что-то типа

void initcializacia() {
int peremennaya1, peremennaya2, peremennaya3;
//200 строк кода
if (peremennaya1 >= peremennaya2 & peremennaya3)
peremennaya3 = peremennaya1*peremennya2+peremennaya3
else
peremennaya1 = короче ты понял

Как же я ненавижу даунов, которые реально думают, что они родились уже опытными кодерами и всерьез сравнивают себя со школьниками.
19 1772554
>>72516

>откуда появились зумерки, дрочащие на стандарты и UB?


с хабра

>Z = (X >= Y & Z) ? X * Y + Z : X + Z / Y | Z;


Эта хуйня иногда компилятором лучше оптимизируется чем цепочка ифов.
21 1772579
>>72516
деды не были security aware от слова совсем. Деды писали код, который могла взломать даже тупая обезьяна.
Что-то типа такого:
char buffer [228];
gets(buffer);

Когда у людей открылись глаза на то, что можно делать нехорошие вещи таким образом (уже во времена зумерков), то эти самые зумерки начали писать куда более чистый и безопасный код, нежели пердеды.
22 1772641
>>72579
Твои программы дидов были по сегодняшним меркам почти идеально защищенными, ибо машины не были подключены к сети круглосуточно, как теперь. Тогда такой стиль кодирования грозил разве что багами и сегфолтами.
23 1772643
>>72538

>Диды в их возрасте время писали что-то типа


program abc;
uses crt,graph;
var a,c,d:integer;
begin
a:=100;
b:=200;
d:=300;
writeln('otsosi u programmista');
end.
24 1772671
Покормлю жирных.

>Z = (X >= Y & Z) ? X Y + Z : X + Z / Y | Z


Для дедов это было читаемо и абсолютно понятно, потому что они попросту обладали б
о*льшим математическим бекграундом, чем современные макаки, и нотация выражений ими воспринималась очень легко.

>читаемость


Это по большей части мем, придуманный корпоративными погонщиками в годы первых бумов программирования, просто простой способ увеличить эффективность макаки, и при этом уменьшить ее ценy. Естественно писать понятно важно, но зумерки и сами не очень понимают почему.
25 1772678
>>72671
Да это и сейчас читаемо и понятно, хз у кого могут быть с этим проблемы, может у школьника с дефицитом внимания у которого моск не может сосредоточиться на одном символе и взгляд начинает скакать туда-сюда?
26 1772737
>>72490
Еcли коpотко
ДЛЯ TЕX, КTО НЕ ПОНЯЛ, что cейчac пpоизошло - объяcню нa пaльцax: пpедcтaвьте вы пpиxодите нa cобеcедовaние водителем гpyзовичкa в Мaгнит
1. Cнaчaлa тебя мyчaют вопpоcaми, почемy мaшинa едет вообще, можно cлегкa cпpоcить физики об yгловой cкоpоcти пpи движении нa выпyклом моcтy, дaдyт пpоcтyю зaдaчкy вычиcлить ее для опpеделенной кpивизны моcтa и cкоpоcти гpyзовичкa
2. Зaтем вопpоcы по ycтpойcтвy гpyзовичкa: кaк пеpебpaть движок или cнять коленвaл. B целом, ты когдa-то этим зaнимaлcя или влaдеешь нa ypовне "я видел, кaк это делaетcя", поэтомy нa cловax можно донеcти оcновнyю идею
3. Зaодно cпpоcят, кaк вообще paботaет тpaмвaй, нy и кaкой-нибyдь дизель-поезд TЭП-70, и до кyчи велоcипед. Xоть ты дaвно и не кaтaешьcя нa велике, yже лет 10 кaк, но что-то в пaмяти оcтaлоcь и ты paccкaзывaешь, кaк пеpебpaть втyлкy, вилкy, cпицы и вcе тaкое. B оcтaльныx вопpоcax делaешь лишь кaкие-то пpедположения, т.к. никогдa не был мaшиниcтом поездa или тpaмвaя. Но дaть пpaвильный ответ кpaйне желaтельно
4. Зaтем тебя caжaют нa тaбypеткy, дaют бapaнкy в pyки, и говоpят “поеxaли, зaбеpем тaм cо cклaдa нечто и отвезем нa aдpеc тaкой-то”. Aдpеca зapaнее неизвеcтны. B это вpемя ты должен изобpaзить, кaк едешь по yлице в ycловияx огpaниченной yзкой yлочки, вcе повоpоты должен помнить нaизycть по пaмяти без нaвигaтоpa, зaтем paзгpyзитьcя y мaгaзинa. B это вpемя нa тебя cмотpят, кaк ты пеpеключaешь пеpедaчи (веpбaльно, без мaшины), оценивaют cтиль вождения и количеcтво нapyшений. Потом говоpят, нy окей, вpоде пpиеxaли. A потом дaют обpaтнyю cвязь, что вот, во вpемя интеpвью вы тaм по доpоге выеxaли paзок зa cплошнyю, a в конце и вовcе окaзывaетcя пеpеxaли пешеxодa. Пpи этом пpодолбaлиcь по вpемени и не пpиеxaли вовpемя нa cклaд.
Поэтомy по внyтpенним pacпоpядкaм компaнии мы вac не можем взять кaк водителя кaтегоpии ЦЭ
27 1772767
>>72579
Джунoв ебут как никoгда раньше. Кoличеcтвo вкатывальщикoв мнoгoкратнo превыcилo пoтребнocти рынка и требoвания к нынешнему джуну - этo middle+ в какoм-нибудь 2016.
Чтo парадoкcальнo, тех же senior, пo прежнему не избытoк и их еще бoлее-менее хантят. Ho дo этoгo ещё надo дoжить.
Middle прoпал как клаcc и теперь в перехoде из junior в senior oтcлеживаетcя c трудoм.
28 1772774
>>72484
Вcё так, рабoтаю миддлoм (5 лет oпыта) фрoнтoм в миллиoннике, летoм ycтраиваем cтажирoвкy, на 10 меcт каждый гoд приxoдит бoльше coтни резюме c выпoлненным TЗ. Зарплата cтажёра c каждым гoдoм тoлькo yменьшаетcя, лoл. Как же я прoигрываю c джyнoв нынешниx, кoгда пoнимаю, чтo oни бyдyт зарабатывать на yрoвне oфиc менеджерoв, а c вкатышей, кoтoрые тoлькo начинают шевелитьcя и бyдyт пoлyчать как прoдаван в пятёрoчке - вooбще co cмеxа пo пoлy катаюcь. Mне-тo пoвезлo, я вoвремя влез.
29 1772790
>>72643
Читaю нoвoсти, и вижу, чтo кoe-гдe ужe нaхуй пoслaли джунoв. Кoe-гдe зaмopoзили зapплaты, нe гoвopя ужe o тoм, чтo дoллap пoднялся. Дaлeкo нe всe в бaксaх пoлучaют. Щaс aйтишникaм зapплaты peжут нa 30-40%.
30 1772791
>>72641

>дpoпнyл BУЗ


Te, ктo yчатся в баyманкe, на карандашe y кадрoвикoв всяких майкoв да цискo
Te, ктo yчатся в МИСИСe, тe на карандашe y 1С и прoчих Group-IB
Te, ктo врываются, - на карандашe y OOO Bазгeн и сынoвья
31 1772829

>>1772778


За копейки и работа должна быть простой и легкой, копеечной. Если же хотите хорошей работы, извольте платить.
32 1772844
>>72791

>Te, ктo yчатся в баyманкe, на карандашe y кадрoвикoв всяких майкoв да цискo


>Te, ктo yчатся в МИСИСe, тe на карандашe y 1С и прoчих Group-IB



Хуйня, я учился в 5 разных вузах Москвы, в том числе и Бауманке, и МИСИСе, и МГУ, и ВШЭ - пока ты сам жопу не поднимешь, никто тебя на карандаш не возьмет, пусть даже если ты неебаца отличник с ФКН
33 1772862
>>72844

>пока ты сам жопу не поднимешь, никто тебя на карандаш не возьмет,


Никогда не понимал, что значит "поднимать жопу, крутится, подскакивать кабанчиком".
Какой конкретно порядок действий подразумевается под этими словами? Что именно мне нужно сделать?
мимо 1-курсник программной инженерии мухасранскава вуза...
hqdefault (12).jpg10 Кб, 480x360
34 1772863
>>72790
>>72791
Че несет, блять? Какие вузы, какие зарплаты? Речь про уязвимости шла.
35 1772923
>>72862
Общаться с преподами, подписываться помогать во внеучебке, посещать конференции, всякие межвузовые взаимодействия, делать исследования просто по кайфу и показывать преподам, участвовать в студенческой внеучебке (клубы по интересам), ну и естественно хорошо учиться
Не знаю сколько из этого есть в мухосранских вузах.
36 1772928
upd: участвовать конечно же нужно в нормальной внеучебке, двигать столы на рандомных встречах руководящего состава вуза это конечно дно для тех кому физру надо закрыть, но чтобы попасть в нормальную обычно сначала занимаются этим
37 1772932
>>72862
Ну, как минимум нужно походить по собеседованиям, чтобы тебя взяли.
Но раз ты на 1 курсе, найди себе корешей и ходи с ними на хакатоны и студенческие конференции. Обычно их организуют местные айти конторы, может и вас заметят.

И самое главное - если просто пинать хуй, то ты останешься говном после любого вуза.
38 1772936
>>72862
Б л а т
л
а
т
реферал
39 1772985
>>72641
В 1988 году червьпидор Морриса, который распространялся через эксплуатацию переполнения буфера в fingerd, положил больше половины тогдашнего Интернета (если не 80%). Что еще расскажешь?
Деды говнокодили. И да, если твоя программа сегфолтится, да еще и не при диких edge кейсах, то ты говнокодер. И большинство дедов ими и были.
40 1772991
>>72985
Ты сам-то подумай, если бы кейсы а-ля чеврь Морриса были чем-то серьезным, то они бы такую хуйню не писали. А на деле все пользовались антивирусами. И еще рекомендую почитать всякие аналоги Мейерса тех лет, там были всякие ебанутые примеры в духе "а тут мы удаляем буфер два раза, смотрите не охуейте, дети. Прост компилятор писали мудаки и в нем баг, ничо потерпим"
sage 41 1772997
>>72991

> если бы кейсы а-ля чеврь Морриса были чем-то серьезным, то они бы такую хуйню не писали


Так именно после Морриса все и заговорили об эксплуатации buffer overflow, и начались попытки научиться писать так, чтобы их не было.
42 1773002
>>72991

>1988


>антивирусы


Жжошь
43 1773030
>>72991

> уязвимости нулевого дня


> антивирусы



No comments. Земля пухом, как говорится.
44 1773044
Братва, кто там следит за сиюминутными течениями? Расскажите, в новом 2к20+ мире нам что-то перепадет? Вон, webassembly этот -- оно про нас? Что еще ждет из свеженького?
А то сижу, угрюмый, и думаю -- что делать следующие лет пять:
а) дальше пердолить Сишку, POSIX, задрачивать computer science в целом, лысеть и слепнуть;
б) идти садиться в какой-нибудь веселый node.js - хайпо-поезд, где все красочно, быстро и идиотично, люди смеются просто так и заливают себе смузи прямо в штаны.
мимо джун пять лет стажа
45 1773049
>>73002
>>73030
Про эвристические анализаторы не слышал, мань?
Как ты эту уязвимость собрался эксплуатировать, если юзвери выходят в инет раз в месяц по выходным или вообще не выходят никогда?
sage 46 1773051
>>73049
Какие юзвери, если атакованы были рабочие станции/сервера? Какие нахуй эвристические анализаторы? Это сейчас железки могут трафик в реалтайме мониторить, а раньше они маршрутизировали-то с трудом.
47 1773053
>>73049
Какой нахер эвристический анализатор в 1988? Ты там че куришь? Там дай боже первые антивири в принципе появились, а ты уже приписал маняфантазии что они у всех стояли.
48 1773073
>>73049
Эвристические анализаторы работают через раз в лучшем случае, особенно когда полезная нагрузка зашифрована, что нередкость в 2к20 году. Компании не просто так боятся зиродеев, и не просто так ведут учет CVE каждый год. Решал бы антивирус эти вопросы по-настоящему эффективно - проблема зиродеев отпала бы сама собой, но на практике АВ эффективен только против файлов, на которых есть сигнатура. Тем более, есть немало случаев, когда в самом антивирусе была дыра, которая позволяла запускать от его лица произвольный код, лол.

Офк на тебя, васяна, никто зиродей тратить не будет, но вот высокопоставленные чины, компании, люди, которые слишком много чего знают - мишени. И определенный круг людей это великолепно понимают.
49 1773083
>>73049

>Про эвристические анализаторы не слышал, мань?


В 88 году? Мань, у тебя сейчас под столом компьютер, который мощнее самого мощного суперкомпьютера в 1988. Какие эвристические анализаторы, им бы байты успеть по портам разложить и не обмякнуть.

Пиздец конечно стареть и видеть, как комплексующие ровестники выдумывают какую-то хуйню про прошлое, а потом находятся какие-то зумерки, которые им верят, и дальше на этой цепочке самоподдува возникают какие-то легенды про героическое прошлое с летающими драконами. Старый код - говнокод. Старый неговнокод - исключение, за 30 лет много раз пропатченное и переделанное. Средний дед программировал крайне хуево, потому что источников знаний о том, как программировать правильно, у него не было - потому что не нашлось того, кто написал книгу. Никаких драконов в прошлом не существовало. Школьники в прошлом вели себя как школьники, долбоебы как долбоебы, а гениев как было 1 на миллион, так и осталось.
96df26c182001a783eedf0602af27c9f.png94 Кб, 980x736
50 1773089
>>73051
>>73053
>>73073
>>73083
А вот и бомбанутые диды понаползли.

Это вы еще пиксельных хипстоподелок в стиме не видели, вот уж где простор для бомбежа про "Нипроуда!11 В Golden Axe и DOTC не так усе былО!!1!11".
1459165749234.jpg2 Кб, 640x400
sage 51 1773090
>>73089
Ну на компах до ПеКа где я начинал, пиксели и правда были попроще. Да и шлака на самом деле тогда делали столько же.
52 1773093
>>73090
Что за игра? Верблюдом идти?
53 1773149
>>73044

>джун пять лет стажа


На си джун?
54 1773156
>>73149

>Си


>джун


Делишь на ноль.
В си берут только сразу синьоров.
55 1773157
>>73044

>webassembly этот -- оно про нас?


А смысл вебассембли? Все равно сайтики на си и си плюс плюс в здравом уме никто писать не будет.
56 1773190
>>72373

Большая часть которых - ядерные дрова для всей возможной хуйни.
57 1773218
>>72516
А что короткая запись это какое-то новшество которого раньше не было?
Как по мне вполне нормально читается, если дать нормальные имена переменных.
58 1773241
>>73044

>идти садиться в какой-нибудь веселый node.js



Это нужно было 10 лет назад делать, сейчас node.js уже не модный и не веселы, провалился как бэкенд и остался лишь запускалкой тулзов для вротенда.

А во вротэнд нужно было года 3 -2 назад вкатываться, до ковидлы.
59 1773243
>>73157
Смысл в том, что в вебассембли можно срать в память, что открывает потрясающе огромный attack surface
60 1773247
>>73157
Т.е. убили няшный флэш только ради того, чтобы сделать свой особенный открытый швабодный флэш, в котором от оригинала оставить только дыры, а остальное выкинуть нахуй? Збс, чо.
61 1773277
>>73243

Нельзя. Точнее можно но память та виртуальная поверх выделенного массива с контролем границ.
62 1773349
>>73157
Я уже пишу, ало.
63 1773355
>>73349
Ну... Рассказывай.
64 1773407
>>73218
Во-первых, нужно использовать операторы if else, а не тернарный оператор ? : .
Во-вторых, блоки инструкци должны быть заключены в фигурные скобки.
В-третьих, приоритет арифметических и логических операций нужно указывать скобками.
Но нет, зумерки напишут говнокод, а потом громко кудахчут, "у меня все по стандарту, я стандарт читал, ко ко". И им похуй, что что бы разобрать их код, программистам, которые поддерживают их код, придется открывать стандарт и пытаться понять, что имело в виду это "юное дарование", и похуй, что их код, написанный по стандарту, скажем, для языка С11 будет работать одним образом, а на компиляторе С99 и С89 по-другому.
65 1773409
>>73407

>нужно использовать операторы if else, а не тернарный оператор ? :


Не нужно.

>блоки инструкци должны быть заключены в фигурные скобки.


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

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


Не нужно, приоритет арифметических операций проходят во 2м классе школы.
15879151825500.png527 Кб, 900x900
66 1773413
>>73407
Пидор, нахуя ты продолжаешь кудахтать про стандарт, холоп?
Стандартобоярам и так понятно, что у тебя жопа уже насквозь прогорела.
67 1773421
Каким компилятором пользуются господа отрицающие GNU?
68 1773425
>>73421
clang/intel/m$ vc/etc
dohuya chem
51qOYA71kkL.jpg64 Кб, 386x500
sage 69 1773522
>>73083

> Никаких драконов в прошлом не существовало.


Ну как же. А пикрелейтед?
70 1773529
>>73421

>отрицающие GNU


Это как?
71 1773531
>>73529
"I use Linux as my operating system," I state proudly to the unkempt, bearded man. He swivels around in his desk chair with a devilish gleam in his eyes, ready to mansplain with extreme precision. "Actually", he says with a grin, "Linux is just the kernel. You use GNU+Linux!' I don't miss a beat and reply with a smirk, "I use Alpine, a distro that doesn't include the GNU coreutils, or any other GNU code. It's Linux, but it's not GNU+Linux."

The smile quickly drops from the man's face. His body begins convulsing and he foams at the mouth and drops to the floor with a sickly thud. As he writhes around he screams "I-IT WAS COMPILED WITH GCC! THAT MEANS IT'S STILL GNU!" Coolly, I reply "If windows was compiled with gcc, would that make it GNU?" I interrupt his response with "-and work is being made on the kernel to make it more compiler-agnostic. Even you were correct, you wont be for long."

With a sickly wheeze, the last of the man's life is ejected from his body. He lies on the floor, cold and limp. I've womansplained him to death.
72 1773535
>>73531

>work is being made on the kernel to make it more compiler-agnostic.


Справедливости ради, ядро написано не на Си.
Большинство из следующих используемых в ядре конструкций отсутствуют в языке Си

Вывод типов - typeof(x)
Ассемблерные вставки - asm volatile("pxor %xmm5,%xmm5");
Диапазоны в свитче - case 1 ... 7:
Массивы нулевой длины - some_variable_len data[0];
Адрес вызывающего - ptr = __builtin_return_address(0)
Определение константности выражения - if __builtin_constant_p(c)
Различные атрибуты функций - __attribute__((always_inline))
Подставляемые функции - inline void fun()
Имя текущей функции - my_func_name = __func__
Инструкции-выражения - ({ int a = b + 1; a; })
Переменное число параметров в макросах - __VA_ARGS__
Арифметика с указателями на void - ++void_ptr
Неконстантные инициализаторы - int arr[2] = { x, y }
73 1773547
>>72290 (OP)
Хочу кодить маленькие хуевинки под разный mips, управляемый древним как говно линуксом и прочими бизибоксами. Желательно ветси разработку под вендой, в уютной студии не старше 2015.

Во что придется вкатываться, в си или в плюсы, и есть ли у меня выбор? Если есть, то что посоветуете?
sage 74 1773556
>>73535

> Справедливости ради, ядро написано не на Си.


Справедливости ради, в Си есть расширения, их использование делает программу (и компилятор) не соответствующими стандарту, но язык от этого не меняется. Некоторые расширения (для справки) перечислены в стандарте (Annex J), многие из них настолько распространены, что их реализуют абсолютно все.

> __builtin_return_address


Никак не нарушает стандарт, можно реализовать библиотекой.

> __attribute__((always_inline))


Скоро будет стандартом, но с другим синтаксисом.

> inline


> __func__


__VA_ARGS__
Лолшто?

> int arr[2] = { x, y }


Если переменная arr автоматическая - все ок.

>>73547

> Желательно ветси разработку под вендой


Нежелательно. Бери линукс, бери qemu-mips, подавай ему рутфс и не страдай с кросскомпиляцией. Или бери шланг под виндой и страдай.

> в уютной студии


Будет максимально неуютно.
75 1773565
>>73556

> Нежелательно


> неуютно



Понятно. А что с языком-то? Си или плюсы и какие есть варианты?
76 1773572
>>73565
Зависит от компиляторов которые код для твоего говнеца генерировать умеют. Скорее всего Си, только вот совсем не факт, что нормальный, лол.
77 1773579
>>73572
Ну в прошлый раз я сделал CC=gcc и скросскомпилил хуйнюшку (чужую).

> нормальный


Что именно ты имеешь ввиду под нормальностью? Я в нюфажестве из 8086 сразу на формочки Борланда съебал, так что в этим вашем си-лоре разбираюсь слабо.
78 1773588
>>73556

>язык от этого не меняется


Очень толсто. Расширения это и есть изменения языка.
79 1773590
>>73413
Стандарто-манька, поклюй зернышек.
80 1773600
>>73409
Если ты делаешь пет-проект только для личного пользования - можешь делать, как хочешь, но в продакшене придерживаются определенного code-style, который включает в себя большинство правил MISRA C или хотя бы CERT.

>>нужно использовать операторы if else, а не тернарный оператор ? :


>Не нужно.


А вот в MISRA сказано, что нужно. И в CERT тоже.

>>блоки инструкци должны быть заключены в фигурные скобки.


>Это потому что ты только что выдумал блоки вместо выражения.


Заключать тела операторов if, else, for и т.д. в фигурные скобочки придумали еще Керниган с Ричи, а не я.

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


>Не нужно, приоритет арифметических операций проходят во 2м классе школы.


В Си арифметические операции включают в себя еще и операции булевой алгебры. Со скобочками сразу понятно и код быстрее читается.
image.png28 Кб, 378x752
81 1773605
>>72290 (OP)
В стандартной библиотеке С89 нет <stdint.h>.
А MISRA требует в обязательном порядке её использовать.
Выходит, что на С89 нельзя написать программу, которая бы соответствовала MISRA?
82 1773613
sage 83 1773615
>>73600
MISRA не запрещает тернарные операторы, ты в очередной раз обосрался, иди стирай штаны.
sage 84 1773617
>>73565

> и какие есть варианты


Нет вариантов. Обычно мипсы и бизибоксы означают единицы мегабайт памяти, какие тебе там нахуй кресты, бери сишку.

>>73600

> А вот в MISRA сказано


В MISRA сказано, что маллок нельзя. Иди пиши без маллока, сука! Ты заебал. В MISRA для таких дебилов как ты специально есть раздел Applicability, там рассказывают, для какого конкретно кода предназначены правила, и где именно этот код будет запускаться. Эти правила не о том, как тебе писать свои хелловорлды.

>>73605

> А MISRA требует в обязательном порядке её использовать.


В MISRA-С:1998 предлагают свои типы определять, так во времена C89 и делали.
85 1773625
>>73617

>В MISRA сказано, что маллок нельзя. Иди пиши без маллока, сука!


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

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


Так об этом я и писал.
Свои пет-проекты для гитхаба ты можешь писать, как хочешь, но в продакшене, коде, используемом в промышленности и медицине, будь добр, придерживаться общепринятых правил.
sage 86 1773628
>>73556

>лолшто


Я написал - большая часть из списка. Что со временем стандартизировали. inline и __VA_ARGS__ стандартизировали только в 1999. __func__ это не стандарт. Поинт в том что ядро можно собрать именно GCC, а не любым компилятором Си если в нем нет расширений.
sage 87 1773632
>>73625

> Использую только массивы под конкретные нужды


А потом к тебе приходит N+1-ый юзер, и тебя увольняют.

>>73628

> __func__ это не стандарт


C99, 6.4.2.2 Predefined identifiers: The identifier __func_ _ shall be implicitly declared by the translator и т. д.
image.png26 Кб, 906x185
88 1773635
>>73615
А писать if-else, for и т.д. без фигурных скобок запрещает.
Я в очередной раз оказался прав.
89 1773649
>>73632

>А потом к тебе приходит N+1-ый юзер, и тебя увольняют.


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

>/ User came /



>/ To write user to array /



i++;

>/ Overflow protection /


if (i > size_array)
{
i = 0;
overflow_array = 1;
};

array = user;
sage 90 1773653
>>73649

> я делаю защиту от переполнения массива


Я о том же.
- Наша программа поддерживает только 32 юзера! Для изменения этого количества нужно пересобрать ее и развернуть на всех 100500 машинах.
- Уволен!

> if (i > size_array)


> i = 0;


Можете писать это на рекламных проспектах, чтобы люди знали, кого обходить стороной!
91 1773655
>>73617

>какие тебе там нахуй кресты, бери сишку


А разве кресты это не шарп?
92 1773657
>>73655
Трипл фейспалм.
93 1773658
>>73657
Чо вдруг? цпп всегда были "плюсами", а "крестами" как раз шарп. Ты не зумерок случаем?
sage 94 1773660
>>73635
Только ты обосрался потому что в арифметическом выражении не пишут if-else.
95 1773668
>>73658
Шарп всегда был решеткой, а плюсы всегда были крестами, на что даже "кресты" во множественном числе намекают, зумерок.
Другой анон.
96 1773675
>>73668

> плюсы всегда были крестами


> плюсы были крестами


> плюсы



А вот это реально тройная рукалицо.

>на что даже "кресты" во множественном числе намекают,



Так-то, решетка это вообще четыре креста, зумерок.

Совсем другой анон.
97 1773685
Визуальная уебищность программ на Qt является следствием лени и/или отсутствия чувства стиля у программистов, или платформа в принципе не позволяет делать годный интерфейс?

Один красивый скриншот богатого интерфейса на Qt будет лучше тысячи слов.
sage 98 1773687
>>73685
Вы вообще от балды выбираете тред куда срать? Ладно в C++ Qt еще с натяжкой можно писать (хотя это не С++), но в Си тред?
99 1773691
>>73687

>Вы вообще от балды выбираете тред куда срать?


Я об этом подумал, но перевставлять скрины было уже впадлу, к тому же здесь хотя бы кто-то онлайн. А че, на сях с кутэ нельзя писать?
100 1773695
>>73687
>>73691
Перекотился: https://2ch.hk/pr/res/1765587.html#1773694 (М)

Вангую, что если в цпп-треде кто и ответит, то это будут те же самые аноны, что отвечали бы в си-треде.
15878300079840.jpg66 Кб, 567x604
101 1773731
>>73613
Но ведь местный петух бесстандартный - это ты.
Тебе и клевать зернышки, манюнь.
RRaPYN7Q.png319 Кб, 500x500
102 1773732
>>73731
Ой, бля, не тому.
Вот же он, наш петушок бесстандартный: >>73590
103 1773736
Что лучше учить: FLTK или gtk?
Выбираю для написания своих хеллоуворлдов и прочих велосипедов.
104 1773747
>>73736
FLTK проще, имеет няшный код на си с классами, маленький размер бинарников. Из минусов не поддерживает нативные контроллы, и мало готовых виджетов. Также попадаются баги, которые не фиксят годами.

gtk практически единственный кроссплатформенная либа для создания окошек на сишке. Она жирная почти как QT, при этом пилить интерфейс на голом си довольно геморно. Ещё она не собирается статически, под виндой придется таскать с каждым твоим хеллуворлдом пачку ДЛЛок мегабайт на 50.
105 1773748
>>73747

> имеет няшный код на си с классами


Ты тут имеешь в виду C++ или обычные костыльные структуры си с указателями на функции?
106 1773755
>>73748
C++, но из модных модерновых крестовых фич там ничего нет. Вроде даже STL не используются. Только сишные строки, массивы, указатели, только хардкор.
1511893377301.png55 Кб, 1245x858
sage 107 1773757
>>73736
Возможно не совсем то, но посмотри Nuklear (или imgui и так далее)
108 1773767
>>73748
плюсы так-то так или иначе будут удобнее. На плюсах ты можешь писать чуть ли не чистый сишный код, а вот наоборот, увы, нет.
Можешь отказаться от большинства плюх, оставив классы (но не юзая динамический полиморфизм, упорись в CRTP, если позарез нужен бесплатный по рантайму полиморфизм), темплейты, перегрузку функций, дефолтные переменные и прочие зиро-оверхэд конструкции. При компилировании можно вырезать весь балласт исключений вдогонку, например. На выходе получится легкий код, который гибче сишного, а главное ООП (как бы ООП не обсирали, но даже линух, написанный на чистой сишке, активно использует конструкции из ООП через костыли, ибо родного ООП в сях нет).
109 1773768
>>73767
дефолтные аргументы функций
быстрофикс
110 1773771
Дайте пример использования CreatePipe для передачи дочернему процессу на стандартный ввод строки или ещё каких-то данных. Не получается найти пример без лишней хуиты, что б чисто только было порождение дочернего процесса и затем передача ему данных.
111 1773772
>>73767
Звучит интересно. Непонятно только

> При компилировании можно вырезать весь балласт исключений вдогонку


Как это можно сделать? Можно ссылочку?
112 1773773
>>73757

>Nuklear


>imgui


Это для игор и прочих 3д приложух работающих в полноэкранном режиме. Для десктопа не очень подходит, т.к. рендерит всё в одно окошко.
113 1773795
>>73773
Большинство программ однооконные.
sage 114 1773817
>>73771

> Не получается найти пример без лишней хуиты


Потому что все не очень просто. https://pastebin.com/raw/aYmU52FS
115 1773832
>>73668
>>73668

>Другой анон.


Ору пиздец, стандартошизик, тебя видно))
116 1773835
>>73675

>семён засеменил


Иди в крестотред и шарпотред и спроси, что такое кресты.
117 1773847
аноны, что в вашем Сишном мирке по вакансиям? Только эмбеддед или есть еще что-то?
118 1773853
>>73817
Это что, ты для какого-то мимокрокодила взял и сам наваял?
119 1773898
>>73772
Хз как в других компиляторах это делается, но в clang и gcc просто передается флаг -fno-exceptions
120 1773910
>>73847
По большей части только эмбедщина. Прикладуху перестали писать на сях еще в 90ых, а вебпараша - другой манямирок и параллельной вселенной.
121 1773922
>>72516
Хорошо мы тебе очко в прошлом треде намылили. Так будет с каждой неграмотной макакой
122 1773968
>>73731
>>73732
Что, стандартопетушок, так жопу порвало, что уже не видишь, на какой пост отвечаешь, зумерок манямэшный?
123 1773971
>>73922
В прошлом треде разве что тебя всем тредом обоссали, шизик стандартный.
То, что ты знаешь стандарт, не даёт тебе права писать говнокод, вот какую мысль я хотел донести.
124 1773999
>>73971
Неужели тебе настолько лень разобраться в стандарте языка, на котором ты пишешь, что проще защищать какую-то совершенно идиотскую точку зрения на анонимном форуме? Хуёво, наверное
125 1774020
>>73835

>нуб обоссался


>Иди в крестотред и шарпотред и спроси, что такое кресты.



Чтобы там ты же мне то же самое ответил, семен? Я и без двачеров знаю, в чем состоит истина, еще и вас поучить смогу.

Тот первый анон.
15953314741460.jpg76 Кб, 592x532
126 1774044
>>74020
Ну так иди и узнай на других форумах, проблем-то.
Какой упёртый зумерок.
8870f6dfdc9fdf3e4c3c62f3ae0a5d0a.jpg8 Кб, 226x250
127 1774045
128 1774048
>>73898
Благодарю, анончик
129 1774052
>>73971
Что, рачок, так и не осилил приоритет операторов?
130 1774086
>>74044
Я и так знаю что к чему, свинья.
15830722824990.jpg36 Кб, 400x400
131 1774106
>>74052
Он не рачок, он щенок.
132 1774365
>>73999

>лень разобраться в стандарте языка, на котором ты пишешь


По работе(я околоэмбеддер) мне приходится иметь дело и с С11 и с С89, и с С99.
Общее у них одно - они все поддерживают то, что есть в K&R. В остальном они отличаются. Поэтому я придерживаюсь MISRA C и пишу код, который не зависит от компилятора (то бишь код, в котором нет unspecified behavior и undefined behavior).
Вот ты выучил стандарты С89, С99, С11, знаешь, в чем они отличаются друг от друга?
133 1774371
>>74052
Приоритет и в k&r есть, шизик, я его знаю.
Но лучше не писать длинных выражений без скобок, это говно-код, он плохо читается.
В той же книге из шапки треда:
- Немного примеров хорошего стиля: http://www.oualline.com/books.free/style/index.html
советуют так не делать.
134 1774374
>>74044
>>74045
>>74106
Иди в /b/ыдлятню боевыми картиночками траль, дитятко.
135 1774380
>>74365

>По работе(я околоэмбеддер) мне приходится иметь дело и с С11 и с С89, и с С99


Работу нормальную найти не пробовал? Где не нужно программировать под некрожелезо
136 1774395
>>74365
Клоун, открой ка K&R параграф A.6.4. Убедись что UB сущесвует прямо в K&R и захлопнись.
137 1774399
>>74395
Я вкурсе, что UB существуют, что с того?
Суть в том, что они не должны отражаться на работе программы.
138 1774401
>>74399
Бляя ты тупое животное
139 1774407
>>74401
Слит, маня.
140 1774412
>>74407
Ну и чего ты слился, маня?
freee.jpg156 Кб, 730x515
141 1774420
Подскажите почему printf с пропущенными аргументами работает нормально?
142 1774423
>>73093
ОРУ СУУКА
1560162272153.jpg5 Кб, 293x172
143 1774433
>>73093
Именно так. Причем это был ассет флип из игры по Звездным Войнам.
144 1774439
>>74420
А ты местами переставь, поймешь. (Вообще то это UB)
15393607519401.png537 Кб, 757x502
145 1774447
>>74420
Не слушай вот этого >>74439, он не шарит. Ты все правильно делаешь, так теперь можно. Тебе компилятор просто дооптимизировал недостающие оргументы.
146 1774448
>>74420
>>74439
Объясню развернутее: за кулисами может происходить примерно следующее
регистрA = 10
регистрB = 2
регистрС = 10-2
вызов printf
-------
регистрА = 10
вызов printf
^ но значения регистрB и регистрC не менялись. А может быть менялись, может в них теперь мусор.
147 1774449
>>74447
Ох уж эти расто тролли
148 1774454
>>74439
Это из Праты пример у него так, и написано что будет случайными цифрами забито. Я так понимаю что где то эти зачения сохраняются.
149 1774455
>>74454
Случайные - неверный термин (там нет рандома). Произвольными.
150 1774460
>>74455

>неверный термин (там нет рандома).


С чего это вдруг?
У тебя проц и озу выполены в радиационностойком исполнении что-ли?
Может нейтрино пролететь и изменить биты в ячейке ОЗУ, такое бывает.
151 1774462
>>74460
ECC память мань
152 1774466
>>74462
Её не ставят в обычные пека.
153 1774474
>>74420
В бородатых 90ых не одна сотня прог была нагнута раком через уязвимость форматной строки - это как раз то, что есть сейчас в программе на пикриле. То, что у тебя в четвертом принтэфе, позволяет спиздить 2 значения из стэка. Само по себе это не является прямым путем к произвольному исполнению кода (именно в твоем случае, ибо есть случаи, когда саму форматную строку можно контролировать, и написав туда %n можно добиться примитива на запись произвольных данных в произвольные участки памяти - т.н. write-what-where), но в твоем случае, эксплуатируя данный баг, можно обойти рандомизацию адресного пространства из-за того, что у тебя из-за неправильного принтэфа утекают данные из стэка. Если в такой программе, помимо этого бага, есть еще один, позволяющий произвольно писать в память, то такую программу можно довольно легко взломать (исполнить произвольный код от лица данного процесса).

Но уязвимость форматных строк уже осталась в прошлом, этот баг легко заметить, компиляторы срут ворнингами на этот счет, статические анализаторы кода тоже легко видят такие баги, поэтому в серьезном современном байтоебском софте ты форматную строку не увидишь, разве что в заброшенном легаси, который не трогали с конца 90ых.
Но, понятное дело, не пиши такой код, ибо это небезопасно.
154 1774475
>>74466
Не пизди, у всех сборочках с али стоит.
155 1774483
>>74474

>Но уязвимость форматных строк уже осталась в прошлом


Просто не пользоваться printf :3
156 1774528
>>74483
в сях им все же пользуются, просто обосраться стало куда сложнее - компиляторы стали сложнее, умнее, программисты тоже стали более security aware. Ну и многие компании пользуется статическими анализаторами кода, которые находят такие оплошности моментально.
157 1774540
>>74045
Гринтекст, боевые картиночки. А ни пойти ка тебе нахуй падаль?
158 1774578
>>74374
>>74540
Как же я понимаю тебя анон. Совсем они тебя обгадили, никаких берегов не знают. Стандартом своим жопы ебут, хотя он никому не нужен.
159 1774672
поцоны, а как в системное проганье вкатиться? вуз оттарабанил, с 3 курса работаю (полтора года ембедед, полтора си шарп). Вакансии по системщине вижу - охуеваю. Где вообще набраться опыта, кроме как не в средней крупности конторе - хз. Тем не менее, может здесь есть кто-нибудь, кто работает в этой области. Дайте советы плиз, а то перекладыванием жисонов не очень хочется заниматься
160 1774719
Как работает ввод и вывод? У процесса есть область памяти куда данные пишутся, а потом ос оттуда их забирает? Дайте ссылки где можно почитать о этом.
sage 163 1774745
>>74719

> Как работает ввод и вывод?


В сишке у FILE есть свой собственный буфер (если не stderr и если не отключишь setbuf()/setvbuf()), fread/fwrite работают с этим буфером, а если он опустошается/переполняется, сишка делает какой-то сорт системных вызовов ОС (read/write), чтобы его наполнить/опустошить соответственно. Как оно там реализовано - зависит от реализации. В какой-нибудь embedded железке оно может тупо по байту читать/писать UART и висеть, пока не закончит. В "больших" ОС системные вызовы реализованы в ядре, ядро выделяет кусок памяти, чтобы туда читать или оттуда писать и выставляет на ожидание операцию ввода-вывода с этим буфером, процесс помечается как ожидающий IO и спит (или не спит, есть неблокирующий IO). Когда драйвер по какому-то событию получает ввод/завершает вывод, он помечает операцию ввода-вывода законченной, ядро снова начинает выполнять соответствующий процесс, системный вызов завершается, fread/fwrite получают управление, а ты получаешь свой ввод/вывод.
164 1774752
>>74745
>>74744
Спасибо
165 1774808
Анон, здарова. Решил написать сайт на Сях.
>дальше не читал

Фронт - html+css, хотелось бы обойтись без js совсем.
Бэк - Си, платформа - linux.

Дай советов мудрых.
Я так понимаю, что мне понадобятся:
1. fastCGI https://github.com/kristapsdz/kcgi какой-нибудь, не знаю.
2. http parser https://github.com/nodejs/http-parser
3. посты, юзеры и говно будут хратиться в mongo, допустим
4. когда настанет время их выдавать, учитывая, что у меня нихуя не rest api, делать буду как в джанге - заполнять данными html шаблон. Что же, получается, нужен какой-то движок под шаблоны? https://gitlab.com/jobol/mustach/ вот эта херня подойдет?

P.S. делать ничего не буду, просто спрашиваю.
166 1774810
>>73687
Мне очень нравится такой интерфейс.
167 1774812
Где можно онлайн решать задачки по Си?
В гугле забанили, аноны.
168 1774817
>>74812
В других поисковиках тоже?
sage 169 1774822
>>74812

> Где можно онлайн решать задачки по Си?


github, любой проект на си, open issues.
170 1774912
>>74808

> делать буду как в джанге - заполнять данными html шаблон


>хотелось бы обойтись без js совсем


Самое смешное, что тормозить-то будет посильнее чем сайты с жсом, потому что ботлнек всё равно будет в сети, лол.
А если задумаешь сделать что нибудь вроде форумной системы — то будет уровень хабра, где комменты без пагинации рендерятся по 2 минуты, лол.
15942636665240.jpg19 Кб, 350x301
171 1774913
>>74912
Короче, это лол и лол, удачи тебе.
172 1774920
>>73771

> Дочернему процессу


Сыновнему. Процесс - мужского рода.
173 1774947
>>74745
В сишке же есть низкоуровневый без высокоуровневых буферов.
174 1774975
>>74947
И что там есть низкоуровневое? Самое низкое, о чем могу подумать, это непосредственная обёртка сискола write, пишущая байты по адресу, но даже она работает ровно так, как сказал анон, и собственно и находится под капотом у всех ИО функций.
175 1775017
>>74808
Говно без задач, зачем тебе это, ананас?
На сях пишут веб-сервера (типа nginx или apache), ибо там хуйлоуд и нужно упороться в весь возможный перформанс, но ты же просто блять пишешь сайт, зачем?
Ты бы еще на чистом ассемблере пытался его написать, пиздец.
176 1775026
>>75017
Ну дак я думал fastCGI интерфейс nginx'у и скормить.

Хорошо, тогда другой вопрос: если программист на Сях решил сделать себе бложик, какой стек ему можно выбрать?
1) Генераторы статичных веб-страниц, CMS - практично, но это как бы создание контента ради создания контента. Полное отсутствие удовольствия от инженерного процесса.
2) Django - охуенно и быстро. Плюс, питон - это, как-никак, наш младший брат-дебил, который часто выручает. Но Django делает все сама (в т.ч. то, о чем ты ее и не просишь), поэтому удовольствия примерно как от CMS.
3) MERN-стек. Ну, джавоскриптерская тема. Я начал ковырять, но там в джаваскрипте буквально всё ебало, причем 85% кода - это фронт. А почему все ебало в джаваскрипте? Потому что rest api
4) flask - точно так же будет все ебало, потому что rest api

Короче, хоть это и оффтоп, но наверняка у многих из нас есть веб-дев в качестве хобби - поделитесь, что используете.
177 1775047
>>75026
Без обид братиш, но ты какую-то фигню пишешь. Рест это не какой-то интерфейс, а просто набор архитектурных принципов, а rest api - это любое АПИ, используеющее рест архитектуру. Это не какая-то технология, и ты можешь реализовать рестфул ни имея ни строчки жыэс в проекте. Ни фласк, ни мерн, ни меан тебя рестфулы писать не заставляют.

А все что тебе нужно - это открыться на 8080 и написать простой хендлер запросов, хтмлку можешь хоть в const char• хранить, хоть спринтфом собирать, хоть парсить из файла, тебе ее просто нужно завернуть в ответ.
178 1775062
>>75047
Понял (почти). Но ведь на фронте у меня же что-то должно с этим api взаимодействовать, верно?
179 1775083
>>75062
С каким апи-то? Ещё раз, РЕСТ это не апи. И логика на фронте — это точно не про рест. Почитай лучше про веб и как он работает, потому что у тебя очень странное и отдаленное от реальности представление о нем, как я понимаю.
180 1775099
>>75062
Поиграйся с wget или curl
Веб это просто отправка текстовых запросов.
В основе там строка типа GET /pr/index.html HTTP/1.1
После которой идут строки с разными параметрами навроде
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
И в случае запроса POST через отступ новой строки отправляемый контент

В ответ тебе приходит другой набор строк, начинающийся например с
HTTP/1.1 200 OK
Или
HTTP/1.1 404 Not Found
Дальше несколько строк с разными параметрами типа
Content-Length: 1488
Content-Type: text/html
И дальше через отступ в строку сам контент

<html><body>hello</body></html>

Этих знаний тащемта достаточно для обработки статики
181 1775112
>>75062
Реально интересный паренёк =)
Как ты собираешься-то дергать апи с фронта, если ты хочешь без жыеса?
182 1775120
>>75112
Ну дак я и хотел обойтись без api, и формировать страницу на основе шаблонов, как в джанге.
Чел >>75083 мне начал задвигать, что наличие api на бэке и js'а на фронте никак не связано.
Но выглядит он так, как будто шарит, так что я склонен ему верить.
По поводу того, чтобы слушать 8080 - не вижу смысла делать это за nginx. Ведь если я с ним через fastcgi буду работать, то помимо всего прочего, он возьет еще на себя и работу с ssl-сертификатами. Так ведь?
183 1775127
>>75120
js на фронте нужен для асинхронности. Чтобы когда уже загружена страничка, она отправила запроса на /api/widget, (по таймеру или нажатию пользователем кнопки) получила оттуда скажем json со списком пользователей, и динамично поменяла контент части страницы.
В старом вебе 1.0 этого не было, поэтому при нажатии на ссылку происходил тупо переход по ссылке и перезагрузка страницы. Какой нибудь gmail до сих пор будет работать с отключенным js таким образом.
184 1775139
>>75127
Ну, на самом деле если ты так уж хочешь пофаниться можно и на C написать себе фронт — WASM уже поддерживается всеми.
185 1775146
>>75139
А, ну да.
186 1775160
>>75120

>api на бэке и js'а на фронте никак не связано


Именно. Старые статик веб1.0 сайты на джаве/крестах так и работали, логика что-то считала на беке и форматила хтмл строку чтобы вставить ланные перед тем как бросить страницу. Насчет джса тебе другой парень уже верно сказал, но можешь особо не париться, потому что я так понимаю что ты только с ванильным знаком, а с ним даже кашу на фронте не сваришь. Ну можешь в кнопки потыкаться.
7e7.jpg61 Кб, 600x516
187 1775311
>>75139

>пофаниться

188 1775389
Кстати, движок двача написан на си
external-content.duckduckgo.com.jpeg22 Кб, 474x316
189 1775413
>>75311
НАФАНЯ
15879151825500.png527 Кб, 900x900
190 1775440
>>75139
>>75127
>>75120
>>75112
А я вот сторонник писать десктопные аппликухи на веб-технологиях.
191 1775445
>>75440
Сейчас так и делают, лол. Дискорд, вскод - там гуй на электроне. Считай, у тебя не просто окошко десктопной аппки открыто, а вкладка в браузере) Выглядит свистопердельно по-зумерски, но бля...
192 1775472
>>75445
Поэтому только телеграмом можно пользоваться
600x200.jpeg27 Кб, 600x200
193 1775478
>>75472
Но ведь им нельзя
194 1775480
гайс, хочу вкатиться в разработку прошивок на разную эмбедщину. Знаю асм 2 архитектур, Си, кресты (в последнее время больше на крестах пишу, каюсь), основы ОС, писал мелкие байтоебские и околобайтоебские пет-проекты (от 1 до 3к строк кода). Что посоветуете почитать по сабжу? И да, насколько сильно надо вкатываться в хардварь для этого? И надо ли для каждого проекта покупать отдельное железо? Я хочу больше заниматься софтом, но на лоу лвле.
195 1775482
>>75480
забыл добавить - я линуксоид, поэтому мне вся эта движуха с прошивками в эмбедщине, где если и есть ОС, то какой-то кастрированный дистриб Линукса, который запускается даже на картошке, только наруку.
sage 196 1775526
>>74947

> В сишке же есть низкоуровневый


В сишке нет. Есть в POSIX, есть в Windows API. И, как я уже сказал, можно просто отключить буферизацию, и оно будет дергать read/write на каждый fread/fwrite.

>>75480

> гайс, хочу вкатиться в разработку прошивок на разную эмбедщину


http://leanpub.com/c_for_embedded_systems (пдф гуглится) Это максимально ньюфажная книга, известные тебе вещи просто пропустишь. Потом можешь взять, например, bluepill и st-link с али за два-три бакса, и, соответственно, Mastering STM32. Или даже просто даташиты, если умеешь читать и гуглить.

> И да, насколько сильно надо вкатываться в хардварь для этого?


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

> надо ли для каждого проекта покупать отдельное железо


Что-то надо. Что-то пришлют поюзать. Что-то можно удаленно отладить.
197 1775595
Аноны, если интересно системное проганье, какой пет проект можно заебашить? ну или законтребьютить куда-то? или на худой конец просто почитать хорошие проекты на си какие-нибудь?
И пс, Си вообще (чистый, не плюсы с классами) актуален на рынке?
198 1775601
>>75595

> если интересно системное проганье, какой пет проект можно заебашить


Если бы было интересно, то вопрос звучал бы "у меня дохуя идей и нет времени, что делать".

> Си вообще (чистый, не плюсы с классами) актуален на рынке


Не очень. И вакансии с сишкой в любом случае не избавляют тебя от необходимости худо-бедно знать кресты.
199 1775770
>>75601
Как же заебали такие поучатели как ты. Человек спросил примеры пет проектов, которые можно реализовать не охуев, а ты начала блять «еслиб да кабы». В очко себе это «если» засунь.
200 1775805
>>75595

>какой пет проект можно заебашить


Из прикладного-полезного на си написать что-то стоящее очень сложно и никто этим не занимается.
Вот драйвера какие-нибудь или пердолинг ядра, это да. Правда опять же, я думаю это не очень интересно. Я вот тоже какое-то время писал на си, понял что хуйня и перешел на джаву. Писать легко и приятно, никаких указателей и ебли с памятью, куча библиотек, можно писать под андроид, сервера и десктопики.
201 1775830
>>75805
просто лоу лвл это не твое. Как по мне, джава - это уныние, а те сферы, где она юзается в проде (по большей части энтерпрайз) - вообще блевать тянет.
Но тут уже смотря к чему тяга. Если челик в душе байтослесарь, то Си/плюсы ему явно зайдут. А если ему больше по душе чето хайлвльное пилить, не думая ни о чем, кроме бизнес-логики, то да, джава/сисярп - его стезя.
202 1775853
Смотрите, какое у меня няшное async/await на макросах. Код бессмысленный, просто чтобы потестить.
203 1775909
>>75805
>>75830
а ядра типа унило пилить?
204 1775918
>>75909
кому как
Кому лоу лвл байтослесарство неинтересно, то скорее всего уныло. Хотя я не понимаю что такие люди делают в С треде, лол.
205 1775919
Ребятки, не бейте.
В общем, я начинал с Шарпа, все такое, решил на ступеньку ниже спуститься.
И вот меня что смутило. Почему постоянно при передаче в функцию массива передают два аргумента? Почему бы не обернуть массив в структуру из которой можно будет узнать его длину и размер элемента?
206 1775922
>>75919
Подозреваю что это медленнее (лишняя запись/чтение в память)
207 1775972
>>75919
Потому что в сях массивы не обернуты в классы, как это сделано в шарпе. В Си массив - это просто последовательность из N байтов в памяти, на которую у тебя есть указатель. Если ты не передашь в функцию размер массива (количество элементов умноженное на размер каждого элемента), то как ты будешь знать где массив заканчивается?
Запомни, что в Си весь мемори менеджмент не абстрагирован от программиста. И да, пока ты не разобрался в указателях (а если ты задаешь такие вопросы, то ты уж точно не знаешь что такое указатель от А до Я), то не трогай массивы, иначе ты так и будешь мысленно нахлобучивать понятие массива из сисярпа на Си.
208 1775974
>>75972

>то не трогай массивы


лол, а на чем тогда изучать указатели? просто голые адреса присваивать?
209 1775978
>>75974
Ну, тащемта, чтобы понять указатели нужно понять адресную арифметику, так что да. Выделяй память, дрочи её указателями, всё как диды завещали.
210 1775983
>>75978
Зачем нужна адресная арифметика без массивов?
211 1775985
>>75978
Какой сложный вопрос есть по адресной арифметике?
212 1775987
>>75853
Ммм, корутинки прямо из в 80-х.
Вообще страшно пытаться понять if(0) case и прочее.
А как будет работать если в скобках несколько операций записать? async(a, b)
213 1775989
>>75983
пчел, я тебя уверяю, что спрашивающий анон в душе не ебет что означает вот это:
int x = 228;
int ∗ptr = &x;
printf("%d\n", ∗ptr);

Ему надо сначала понять суть указателей, что не так уж и сложно, а потом дрочить массивы (без понимания что есть указатель ты не поймешь что действительно есть массив, а будешь пытаться нахлобучить идею массива из хайлвл языка, не понимая щито происходит, что и случилось вс этим аноном) и арифметику (первый пост про арифметику написал другой анон, если что).
214 1775999
Привет всем эмбедщикам и байтослесарям.
Есть некий общий вопрос по драйверам.
Вот есть у меня железка (хуй с ней, пускай это малинка), вот у меня есть GPIO пины, некоторые из них (смотря что в спеке написано) присобачены, например, к SPI или I2C шине. Прекрасно. Теперь, есть у меня другая хуевина, которую я хочу ПРИШПАНДОРИТЬ. Допустим, это LED дисплей. Совершенно очевидно, что я должен писать драйвер, если я хочу, чтобы на этот дисплей выводился, например, hello world. Вопрос: как мне знать к какой шине мне присоединять дисплей? И вообще, как знать должен ли я железку Х присоединять к пину, который сидит на SPI/UART/I2C (нужное подчеркнуть)? Ибо без знания этой инфы я не знаю какой именно драйвер мне надо писать.

Всем заранее спасибо.
image.png59 Кб, 612x555
215 1776004
Ньюфаг в треде. Знакомый препод подсказал учебник Полякова. Так вот, мне нужно каким-то образом использовать в visual studio библиотеку graphics.h. Как это сделать? Пробовал скачать graphics.h и запихнуть в папку, где лежит stdio.h. Не заработало. Потом запихнул этот файл в папку с проектом. Теперь #include "graphics.h" не подчёркивается красным, но функции оттуда подчёркиваются. Я так понял, что надо ещё какие-то файлы, кроме заголовочного для работы библиотеки? Можно ли сделать graphics.h встроенной библиотекой, чтобы каждый раз не вставлять в папку с проектом?

Попробовал скачать библиотеку и установить по инструкции https://www.cs.colorado.edu/~main/bgi/visual/ - выдаёт ошибки.
216 1776028
>>75987

>Вообще страшно пытаться понять if(0) case и прочее.


Там всё очень просто на самом деле. Вдохновлялся прочитанной мной когда-то давно статейкой https://www.chiark.greenend.org.uk/~sgtatham/mp/

>А как будет работать если в скобках несколько операций записать? async(a, b)


В макросе async не будет работать, там ожидается lvalue (т.е. имя переменной для сохранения стейта).
В остальных случаях можно писать что угодно (кроме того, что нельзя, но это как обычно). Можно писать await (process(task1) & process(task2)) и асинхронно ожидать выполнение двух тасков. После всех макросов допустимы фигурные скобки, которые позволяют писать некоторые вещи более наглядно и удобно, например: if (error_detected) leave { task->error_code = -10; task.error_info = "some info" };
Вот ссылка на код https://ideone.com/oISw4y если интересно самому потестить.
217 1776047
218 1776052
>>76004

>conio.h


Это устаревшая нестандартная библиотека, в современных компиляторах её нет. Твоя лаба написана под древний компилятор от борланда, поставь его и не еби мозг.
219 1776096
>>75989
Ну, как. Указатель это просто адрес в памяти, в твоём коде ты, условно, говоришь что ptr это адрес по которому нужно обращаться если мы хотим получить переменную x. При развменовывании мы считаем что надо взять кусок памяти размером с тип указателя, начиная с такого-то адреса. Что не так-то?
220 1776191
>>75595
Сделать очевидный беб-сервер.
Посмотри код того же nginx, он довольно аккуратный, хотя мало комментариев.
Лучший системный проект есть ядро пинуса или *bsd.
221 1776196
>>75919
Первый и последнмй раз я такое видел в sslref. Это не так удобно и эффективно, как кажется. Хотя немного снижает вероятность ошибок.
222 1776206
>>75985
Какой тип имеет выражение p-q? Насколько эффективно оно вычисляется?
223 1776237
>>76206
Что такое p, что такое q
c9.jpg5 Кб, 187x250
224 1776305
>>76237
Естественно, указатели
225 1776441
>>76305
Ну тип size_t
226 1776445
>>76441

>size_t


Оно беззнаковое же. Как разница может иметь беззнаковый тип?
227 1776448
>>76445
Значит long long
228 1776552
>>76445
if (p > q) dif = p - q
else dif = q - p
229 1776560
>>75999

> Вопрос: как мне знать к какой шине мне присоединять дисплей?


Это у тебя шутки такие? Ты берешь дисплей, на дисплее написаны буковки, буковки ты гуглишь, находишь даташит. В даташите написано, куда подсоединять, что туда посылать и много другой интересной информации.

>>76004

> Можно ли сделать graphics.h встроенной библиотекой


Можно, добавь в настройках проекта в Include directories путь. Или ключиком /I. Но лучше сожги это говно и не слушай больше этого препода. Так давно никто не делает, если привыкнешь так - создашь себе кучу проблем в будущем.

>>76206
ptrdiff_t, если указатели на один и тот же объект, и UB, если нет. Абсолютно бесполезное знание.
230 1776569
>>76004
graphics.h устарел, пользуйся современными библиотеками вроде Vulkan, здесь все хорошо расписано для новичков https://vulkan-tutorial.com/
231 1776578
>>76560

>ptrdiff_t, если указатели на один и тот же объект


Тогда бы и разницы не было, то есть был бы 0
232 1776583
>>76578
Есть составные объекты, например, массив. Вот разность указателей и применяется для указателей на элементы одного и того же массива, больше для нее задач нет.
233 1776641
>>76569

> вулкан


> для новичков


Обосрался
234 1776707
так бля
почему вы все тут пишете, что Си сейчас только для эмбедед юзается, а я не увидел НИ ОДНОГО в треде вопроса про эмдедед. (Ну, по крайней мере прямого - крайности ударяться не буду)
Так что вопрос: вы все меня тут наебываете и весь софт на сях ?
235 1776721
>>76707
Для laba2.c
236 1776729
>>76707

> весь софт на сях


Много софта использует либы, которые на сях. Кое-какой софт сам на сях.

> не увидел НИ ОДНОГО в треде вопроса про эмдедед


Здесь традиционно обитают ньюфаги и студенты с лабами. В /ra/ есть embedded-тредик.

Алсо, что касается ньюфагов и эмбеддеда, я пролистал книжку отсюда >>75526 и это какое-то максимально бессвязное и одновременно поверхностное днище, из которого сложно чему-либо научиться.
237 1776774
>>76729

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


Так там даже название бессмысленное. Си это просто язык, нет никакого специального "си для эмбеддед".
embedded-c.png19 Кб, 800x80
238 1776782
>>76774

> нет никакого специального "си для эмбеддед"


Оно там в том же смысле, что и 21st Century C из шапки, типа, как именно готовить сишку в ембеддед. Алсо есть овердохуя расширений у компиляторов, которые, например, позволяют функцию как isr пометить в каком-нибудь восьмибитном МК, и которые не имеют смысла вне embedded. Но автор книги о них не знает.

А книга очень хороша, чувствуется, что автор проделал большую работу:

> (В языках) Python и Erlang ... программа не компилируется в байт-код, она интерпретируется на лету, строчка за строчкой.


> В языке Си строгая статическая типизация


> swap(a, b, sizeof(a)); // function sizeof() located in STD library


И вот такое попадается на каждой второй странице.
239 1776787
>>76782

>программа не компилируется в байт-код, она интерпретируется на лету, строчка за строчкой


Проиграл. Интересно, что бы случилось с мозгами автора, если ему сообщить, что самый первый язык программирования BASIC, в принципе программы хранил только в байткоде, сразу же "компилируя" каждую введенную строчку после нажатия Enter, а потом "декомпилировал" обратно в текст если хочется посмотреть на исходный код. Таким образом, исходного кода и не существовало в принципе, только байткод.
15969224667500.jpg68 Кб, 653x595
240 1777009
>>76782
>>76774
>>76729
А нахуй вы вообще открываете всякое пидорашье говнище? "Не читайте советских газет", слыхали такое? Совковую и постсовковую макулатуру можно разве что как сборники кринжовых анекдотов воспринимать. А аффтар наверняка какой-нибудь увожаимый пердподаватель из шарашки, который вчера с турбопаскоколя пересел.
FortranCardPROJ039.agr.jpg376 Кб, 1687x809
241 1777013
>>76787

>самый первый язык программирования


>BASIC


>сразу же "компилируя" каждую введенную строчку


>введенную


>самый первый язык программирования


СВАЁ. РАДНОЭ )))) Хоть и мелочь, но не отстаешь от автора, молодец, не посрамил диржаву )))
242 1777340
>>77009

>всякое пидорашье говнище


Автор типичный либирашка 1990 гр
243 1777389
Анон, добрый день.
Ниже будет просто мое мнение, там нет вопросов, просто несколько наблюдений.

Постепенно вкатываюсь в WinApi, т.к. сфера в которую хочу вкатиться (вспомогательно-вычеслительные модули для САПР и визуализация результатов) под Линуксом не существует. Речь о серьезных коммерческих проектах. Точнее, серьезных САПР.
И мне кажется, я понимаю почему.
Мало того, что в мире Линукса дикий зоопарк совершенно несовместимых подходов и тулкитов, так еще и никакой гарантии, что завтра половина из них не окажется заброшенной, потому что разработчики разосрались и каждый теперь пилит свой вариант (как пример).
Просто дикое распыление созидательной энергии.
В то же время винапи - цельная, и, не побоюсь этого слова - красивая структура.
Естественно, я смотрю однобоко - моя нынешняя профессия подразумевает использование САПР и глубокое погружение именно в конструирование. Которое доступно только под винду. По абсолютно тем же причинам что и выше.

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

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

Короче, выводов не будет.
244 1777400
>>77389

>винапи


>красивая структура


Слишком толсто, попробуй потоньше, анон.
245 1777415
>>77400

>Слишком толсто


Вообще не пытался. Зачем просто так пишешь и повышаешь энтропию? Лишь бы пукнуть?
Посмотри здесь:
http://zetcode.com/ebooks/windowsapi/
Это красиво.
246 1777491
>>77415
Некоторым вон нравятся волосатые жирухи или старухи. Красиво для них? Безусловно. По факту? Можно поспорить.
Такая же ситуация и здесь, анон. Тебе нравится - да ради чёрта. Только я вот твою простыню выше тоже не понял, к чему это было высрано?
247 1777514
>>77389
Слишком упитанно.
248 1777539
>>77491

>Только я вот твою простыню выше тоже не понял, к чему это было высрано?


Для дискуссии, евнух.
Только о чем можно с тобой дисскутировать, если ты не в состоянии понять простой текст?
Ну и еби своих жирух, евнух.
249 1777570
>>77539
виндошиз, у меня каждое яйцо больше, чем твоя головушка, так что свою евнуховскую боль на других-то не проецируй) Забирай свое ненужное говно и вали нахуй отсюда, в этой хуете никто не заинтересован и тем более никто не восторгается, кроме тебя, аутиста.
250 1777580
>>77389

>цельная, и, не побоюсь этого слова - красивая структура


Нет

>трехмерных вычислений, трансформациями матриц и векторов


Почему они не напишут скоростной движок на сях и не дтереьят его через питухон? Хотя возможно что это просто прототип
251 1777679
>>77389

> В то же время винапи - цельная, и, не побоюсь этого слова - красивая структура.


Цельная - более-менее была до висты. Сейчас как в линуксе зоопарк подходов, которые, правда, все худо-бедно поддерживаются, но местами уже ломаются. Красивым это не было никогда, ни на секунду с тех самых времен, как Microsoft получила CP-M/86 сразу с грузом легаси и вынуждена была все это тащить. Не веришь мне - почитай oldnewthing, особенно старые посты (в любом случае полезно будет, если собираешься с Windows API ебаться).

> программа ... на питоне будет безбожно тормозить


Традиционно под вычисления берется нампай+сайпай и прочие сишные либы, или даже своя пишется на сишке, а на питоне остается только менеджмент. Разница в скорости выполнения небольшая, разница в скорости разработки огромная.
252 1777728
>>77389

>Я на протяжении некоторого времени игрался с FreeCad. Я не знаю почему разработчики выбрали именно питон, вместо, например, С++.


>https://github.com/FreeCAD/FreeCAD


>C++ 54.1%


>Python 41.8%


Чел...
Тащемта, за тем же за чем тот же блендер это сделал. Ядро и всё, что требует перформанса — написано на плюсах, а плагинчики и вёрстка кнопочек делается в питоне, ибо всем похуй насколько это будет медленно, потому что сделается на старте за пару секунд и всё, это во-первых. А во-вторых, они это делают за тем же, зачем разрабы языков переписывают компиляторы этих языков на эти же языки — чтобы проверить сам язык (в данном случае, чтобы видеть как разработка расширений происходит с другой стороны и не писать всякого говна).

>Постепенно вкатываюсь в WinApi


Он нахуй не нужен в САПР, там нужна графика, матан и инженерное дело.
253 1777736
>>77389

>И мне кажется, я понимаю почему.


Потому что ведноры видеокарт хуй на них клали, что сейчас стремительно меняется стараниями FAANGов, которые инвестируют в облачные вычисления и гейминг.

>Мало того, что в мире Линукса дикий зоопарк совершенно несовместимых подходов и тулкитов, так еще и никакой гарантии, что завтра половина из них не окажется заброшенной


А тебя-то это как коснётся? Ну форкнете тулкит, если такой уж большой гуй. Хотя обычно в таких проектах гуй — хорошо если 10% кода.
А на всё остальное есть стандарты, и стандартизация в общем у юникс-подобных систем несравнимо выше чем у шинды, лол.

>Просто дикое распыление созидательной энергии.


А теперь иди и загугли откуда появился мем про NIH (по русски надо гуглить фатальный недостаток), зумерок. Хотя можешь не гуглить — http://lurkmore.to/Фатальный_недостаток . M$ — это та компания, которая создаёт и убивает фреймворки/тулкиты/итд чаще чем _все_.
sage 254 1777763
>>77736

> стандартизация в общем у юникс-подобных систем несравнимо выше чем у шинды


У меня epoll обkqueueался от таких заявлений.
255 1777806
>>77763
И как это противоречит тезису о том, что у никсов стандартизация в целом на голову выше?

На шинде у тебя вообще _всё_ в ебаных ни с чем не совместимых костылях, начиная от ебаных буков в их кодировках (с которыми никто не умеет работать и в 2к20 куча нативного софта может пойти нахуй просто потому что у тебя кириллица в юзернейме), проходя все системные апи (там даже ебаные сокеты и то свои ни с чем не совместимые) и заканчивая концептами самой шинды (вроде реестра и своей залупы на дотнете вместо баша которая прогревается перед стартом чуть ли не 5 секунд, чисто особы путь шинды).
sage 256 1777808
>>77806

> начиная от ебаных буков в их кодировках


Лал. Ну-ка расскажи нам, в какой кодировке у тебя имена файлов в линуксе лежат?

> ебаные сокеты и то свои ни с чем не совместимые


Обычные сокеты в винде практически ничем кроме WSAStartup/Cleanup от Berkeley не отличаются. А попытки сделать что-то поэффективнее, чем select, мы уже >>77763 обсудили, они у всех свои, и это как раз последствия той самой "стандартизации" в юниксах.

> концептами самой шинды (вроде реестра


А сколько парсеров конфигов у тебя в /bin? Сколько разных синтаксисов в /etc? А про dconf слышал?

> залупы на дотнете вместо баша


Не нравится - не пользуйся. Мне не нравится хочу в командной строке командовать, а не программировать, поэтому у меня cmd и bash в зависимости от задачи. А кому-то доставляет, очень мощная штука, баши даже близко не стояли.
257 1777812
>>77806
кек, попробуй на этом стандартизованом линуксе запустить гуишное приложение написаное 20 лет назад.

А под виндоус книга Петцольда (написана в 90е) до сих пор актуальная и все примеры из нее будут прекрасно работать под десяткой
258 1778040
Аноны, какие интересные вопросы на собеседованиях вы слышали? Естественно вопросы по Си.
259 1778074
>>78040

> Нахуй вы сюда пришли с этим убогим высером мамонта, идите домой, учите жс, пилите сайты

260 1778078
>>78040
Не совсем по Си, но однажды, когдя я упомянул bss, меня спросили: "кстати, как это расшифровывается, не помните?"
261 1778088
>>78078
Никогда бы не догадался.
262 1778143
>>78078
Интересный вопрос.
263 1778252
Как правильно изучать Си в 2020 году? Я чего то начитался линукс вея, начал слепую печать тренировать, линукс установил, редактор вим начал осваивать, но собственно на сам язык си как то взял и забил до того как на уровне мышечной памяти освою слепую печать и основные комбинации клавиш вим. А сейчас думаю, а это вообще надо? С помощью вим и командной строки линукс точно можно делать всё что с помощью IDE Clion? Язык я учу по книге Прата, и там нет ничего про инструменты программиста. Гитхаб, гитлаб, AppVeyor, Travis CL, валгринд мемчек, профилировка, рефакторинг, CMake, режимы Release и Debag, и в этом самом CLione полно ещё всяких кнопочек и настроек непонятного функционала. Короче стоит ли упарываться линукс веем и как учиться пользоваться современными инструментами для программиста? Например у меня уже возникает потребность в системах контроля версий, так как меняю что то в программе и программа начинает работать хуже чем до, а я уже не всегда помню каким код был до внесения изменений, но в книге голяк
264 1778277
>>78252

>стоит ли упарываться


Может быть, хорощая IDE (вроде турбо паскаля) удобнее vim+sed+grep+bash.
Но таковой нет на всех машинах, где я правлю код и отлаживаюсь, поэтому я использую то, что есть, и внезапно этого хватает.
265 1778278
>>78252

>С помощью вим и командной строки линукс точно можно делать всё что с помощью IDE Clion?


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

>Например у меня уже возникает потребность в системах контроля версий


Гит обязателен к изучению, тут и спорить нет никакого смысла. Прогер, не умеющий работать с гитом, некомпетентен.

В книге тебе дадут теорию, тулинг же учится в гугле и методом проб и ошибок. Я вот сейчас с cmake ебусь, могу только в основы, такая хуйня из-под коня, но делать нечего. Шарить в тулинге - мастхэв.
266 1778290
Как то я умудрился пропустить момент где обсуждался смысл подобного объявления функции:
char getword(char str)
Конкретно вопрос по поводу первого указателя. Для чего это и что он делает?
image.png1 Кб, 194x21
267 1778294
>>78290
Найс, -оба указателя. Короче вот
268 1778301
>>78290
У тебя объявлена функция getword, которая получает указатель на char в качестве аргумента и возвращает указатель на char. В чем вопрос-то заключается?
269 1778351
>>78294
Правильно писать char• function(char• argument), потому что звёздочка в данном случае — это часть типа, а при вызове писать аргумент с пробелом
270 1778376
>>78351

>потому что звёздочка в данном случае — это часть типа



жыр
271 1778384
>>78294
Функция получает указатель на чар (ну то есть строку), и возвращает указатель на чар, ну то есть скорее всего на строку.
Если бы первой звездочки не было, функция вернула бы просто один символ по значению.
1447083329904.jpg69 Кб, 1920x1080
272 1778385
>>78351
Ты ошибся, это не с++ тред
123.png42 Кб, 511x296
273 1778392
Анончики, какие типы проектов можно делать с данной железкой?
274 1778418
>>78392
На F4 вообще все можно делать, хоть трудэ игры с корованами.
275 1778424
>>78418
А типичные эмбедед-проекты? Как правило, челики сооружают целые IoT проекты, присоединяя куча периферийных устройств (пропеллеры, джойстики, детекторы температур и т.д. и т.п.), пишут на все это дело драйвера + программу, которая удаленно может хэндлить все эти дела.
276 1778521
>>78424

>присоединяя куча периферийных устройств


Для этого тебе нужна куча ног у контроллера, которыми нужно дрыгать, периферия типа таймеров, которые будут дрыгать ногами независимо от CPU, возможно интерфейсы типа i2c или i2s. У stm контроллеры жирные и имеют много периферии, поэтому их хватает для многого, а если не хватает, можно какую-нибудь внешнюю микруху поставить, типа ЦАП для вывода звуков. Но с этим тебе в /ra и вообще без знаний электроники там делать нечего.
Лично я за месяц на самоизоляции вкатился в эту хуиту на практике (именно в стмы), но у меня в свое время и курсач был с расчетом аналоговых схем в микрокапе, и прошивки для устройств я писал на заводе (но не электроникой и дизайном всего этого)
277 1778526
>>78424
Да, все можно. Только дорого. У китайцев в районе 700-800 рублей можно купить что-нибудь на F4.
278 1778593
>>78424
В большинстве успешных случаев создаётся очередная дыра в безопасности.
279 1778886
>>78521
ну смотря какой электроники. Как работают транзисторы/резисторы тебе зачастую накхуй не надо знать, особенно в конторах, где платы и софт делают разные люди
а микруху и логику то да, но это, имхо, полегче чем аналоговая хуйня. Так что не так страшно
к чему я это? да хуй знает. Наверное к тому, что пару видосов по логическим схемам и знаниями си (+ стмлайк мп таки стоит потрогать за вымя) норм для поиска какой-никакой работы
280 1778991
>>72290 (OP)
Что покодить для практики и углубления в язык после Праты? Сразу в ядра линупса лезть или какой-нибудь коконтроллер закодить?
281 1779005
Аноны, я заинтересовался разработкой драйверов на Линукс. Некоторые уже пугали, что работы там на 3.5 места, но из разработки мне все равно только это нравится. Ну и вообще весь лоу-лвл, но углубиться поначалу нужно хотя бы во что-то одно, драйвера мне показались наиболее интересными.

В индустрии, видать, такие челики как я (но более опытные) нужны в компаниях, где железом и софтом под железо занимаются разные люди, я правильно понимаю? Есть board designers, которые высирают плату/SoC, а есть лоу-лвл прогеры, которые пишут под это дело прошивки и драйвера. Все верно?
282 1779017
>>79005
Добавлю:
Пишу на С/С++ уже около двух лет, получил степень по информатике, знаю Линукс + постоянно его юзаю, умею писать базовые виртуальные (не на настоящие железки) драйвера, есть парочка личных проектов разных уровней сложности и объема (от 1 до 3.5к строк кода, но почти все из них на плюсах и все из них - юзер-спейс проги, хоть и все равно лоу-лвльно байтоебские), знаю основы работы ОС и участвовал в CTFах, оттуда опыт в реверс инжиниринге и бинарной эксплуатации, а также знания языка ассемблера.

Поэтому я не совсем зеленый в мире лоу-лвл программирования. Это если кто-то думал, что я очередной вкатыш с нулевыми знаниями, а то мало ли... Все-таки двач.

Но так или иначе, я надеюсь увидеть здесь адекватных анонов с опытом работы в сфере разработки драйверов, буду рад услышать что да как, вплоть до описания типичного рабочего дня, что нравится, что не нравится и т.д. За ЗП не гонюсь, реально нравится только лоу-лвл, другим не смогу заниматься. Всем адекватным анонам заранее спасибо!
283 1779019
>>78991
Напиши конпелятор Си
284 1779021
>>79019
Это не стёб я надеюсь? Норм практика для совсем юных?
285 1779024
>>75389

Нет. Вакаба на Перле лол.
286 1779046
>>79021
Для урезанной Сишки без адовых оптимизаций - вполне норм проектик. Полный клон gcc/clang - да, непосильная задача, особенно для одного челика и ососбенно для зеленого.
287 1779051
>>79046
Понял+Принял, уже развлекаюсь. Спс, анон.
288 1779069
>>79024

> Вакаба на Перле


А макаба на крестах.

>>79046

> вполне норм проектик


Это все же у тебя троллинг такой. Опыта, конечно, с такого проекта можно овердохуя получить, но и шанс дропнуть из-за общего объема задач крайне высок. Особенно, если это первый самостоятельный проект.
289 1779194
Может кто объяснить зачем в коде:
https://github.com/sgreenlee/C-Primer-Plus-Exercises/blob/master/ch11/exercise01.c
юзерская функция возвращает указатель на чар если мы внутри этой же функции изменяем аргумент по указателю а возвращаемое значение даже никуда не ассигнится? Нормально если я буду возвращать воид? Всё работает и так.
290 1779210
>>79194
боже, ну и говнокод
По логике она рили должна возвращать войд, причем вызывается она так, будто ничего не должна вернуть (см. строка 23)
291 1779212
>>79210
Вот и я за это. Только учусь, как напишу код сверяю с индусами и конкретно этот момент покоробил.
292 1779217
>>79212
Индусы - самые известные в мире говнокодеры, так что удачи, пчел :-)
293 1779218
>>79217
Спасибо) Думаю за месяц учёбы я недалеко от них ушёл.
294 1779232
Привет.
Я вам тут интерпретатор Си принёс.
А нет, не принёс. Несу.
Вот, исполняемый файл, параметром к нему Си файл в командной строке и он его начинает почти сразу его исполнять.

Доступна только одна библиотечная функция - printf. но настоящему программисту хватит же. Не принёс, потому что инерпретатор не сумел реурсивно постчитать факториал. Где-то ошибка.

Вот, хотел поинтересоваться - вам EXEшника, readme и пару хелловордов для примера хватит или исходники подавай?
295 1779238
>>79232
Исходники! Бинарь виндовый с вирусами не нужен твой.
296 1779251
>>79238
Ладно, как придёт время, дам ссылку на github. Проект уже там, но без интерпретатора, толко лексический и синтаксический анализаторы.

Поддержка Linux и прочих юниксов будет несколько позже. Уж точно не раньше, чем факториал посчитается.
297 1779268
>>79251

>Поддержка Linux и прочих юниксов будет несколько позже


Гм, а что может быть системно-зависимого в игрушечном интерпретаторе?
298 1779290
>>79268
он на винапи его писал походу кек
299 1779332
>>79268

>а что может быть системно-зависимого в игрушечном интерпретаторе?



Ничего. Но вот такие конструкции мой не очень свежий gcc не тянет

for(auto item : : f->overload_list)

и приходится их разворачивать в нечто подобное

for (codeline = code->space->space_code.begin(); codeline != code->space->space_code.end(); ++codeline)

Ну да, тема о Си, а не плюсах. Но я пользовал плюсы.
300 1779334
>>79332
В смысле не тянет, о чем ты?
0.jpg4 Кб, 200x194
301 1779337
>>79332

>for (codeline = code->space->space_code.begin(); codeline != code->space->space_code.end(); ++codeline)


Зачем я это увидел...
302 1779338
>>79194

> юзерская функция возвращает указатель на чар если мы внутри этой же функции изменяем аргумент по указателю а возвращаемое значение даже никуда не ассигнится


А почему нет? Это фактически бесплатно. Этот подход скопирован с сишной стандартной библиотеки: посмотри, например, fgets.

>>79232
C exe-шниками к соседям: >>1748635 (OP)
303 1779342
>>79334

В смысле g++ ругается на вариант цикла с двоеточием. Это появилось в каком-то свежем стандарте плюсов, поэтому компилятор на Линуксе не понимает такие конструкции.
Цикл с двоеточием, кстати в ошибкой в предылущем посте написан - там одно двоеточие, а не два.

Не, если конечно обновить gcc. то должен всё понять. Но это как бы не правильно, обовлять компилятор. Правильно переписать код так, чтобы понимали предыдущие версии компилятора.
304 1779343
>>79338

>А почему нет? Это фактически бесплатно. Этот подход скопирован с сишной стандартной библиотеки: посмотри, например, fgets.


Хз. А зачем? Просто на будущее если дополнять/изменять код? Это не затрагивает быстродействие кода никак?
305 1779345
>>79343

> Это не затрагивает быстродействие кода никак?


Плюс одна инструкция в худшем случае. А что касается юзкейсов, ну хуй знает, можно делать func2(func1(buffer, size)) например. Или где-нибудь в шапке for удобнее втыкать, хуй знает. Все на совести автора. Я бы вернул size_t со счетчиком присвоенных символов.
306 1779347
>>79342
Нет, тебе надо обновить линукс.
307 1779349
>>79347
Я так со Slackware ушёл в своё время, когда на ей была какая-то уж совсем нестандартная версия компилятора С++. Какой-то ничтожный нюанс поломал многолетнюю любовь к Слаке.

Но насчёт обновления Линукса не согласен. Если ты хочешь показать программу народу, то ради того чтобы её посмотреть почти никто не будет переустанавливать обновлять Линукс. Это рарзработчику нужно, чтобы его программа собралась без проблем у пользователя. А если для embedded пишешь, то туда нужную версию компилятора могут вообще вовремя не подвезти.
308 1779352
>>79349
For range это 2011 год, анон.
309 1779366
>>79342
Ты совсем еблан что ли? Или у тебя Линукс необновленный с 2005 года стоит? Пиздец, я в ахуе, потом такие долбоебы как ты кукарекают о том, что Линукс неюзабелен, теперь понятно откуда ноги растут.
sage 310 1779372
>>79342
-std=c++11 не компилит? Частичная поддержка уже была в gcc 4.6.0. емнип, когда ставил дебиан на виртуалку, там стоял gcc 4.8.x.
311 1779373
>>79332
И какая связь между разворачиванием цикла в итераторы под старый стандарт, и невозможностью распространять исходники?
312 1779375
>>79366

>у тебя Линукс необновленный с 2005 года стоит?



У меня линуксы живут в вирутальных машинах. Зоопарк.
Возможно мне будет лениво переписывать "For range loop" и тогда найду в своём зоопарке линукс со свежим g++. Вот только факториал рекурсивно посчитаю.
313 1779379
>>79373

https://github.com/L4OS/Primula/

Последний коммит 8 месяцев назад,
но там нет интерпретатора и код несколько устаревший.
314 1780493
>>79232

>Я вам тут интерпретатор Си принёс.


Лол пишу похожее, только для асма.

>почти сразу его исполнять.


Т.е. без immediate code? Даже комменты не препроцессирует?

>Доступна только одна библиотечная функция - printf. но настоящему программисту хватит же.


Сначала подумал, что ты только bitwise и арифметикой писал, проиграл бы с такой ъ-байтоебли.
315 1781066
Как работает функция OpenFileMapping? Её можно просто применить в дочернем процессе и она автоматически даст ему хэндл последнего созданного в винде объекта типа "отображение файла"? Или это не так работает? Я не хочу ковырять через онлайн переводчик примеры на буржуйском из тысяч строк лишнего кода, напишите по-Русски про эту функцию.
316 1781094
>>79005

>Аноны, я заинтересовался разработкой драйверов на Линукс


Сколько драйверов уже написал?
317 1781105
>>81066

> даст ему хэндл последнего созданного в винде объекта


Даст хэндл отображения, но не последнего (откуда ты это взял вообще?), а с указанным именем. Если такого нет (не создавался, или создавался, но все хэндлы на него были закрыты), получишь NULL. Сам по себе этот хэндл ничего не дает, но ты можешь с этим хэндлом сделать MapViewOfFile и получить уже указатель на сами данные.
изображение.png30 Кб, 1010x501
318 1781109
>>81105
Так, с этим разобрался, спасибо. А теперь, как вообще записывать в отображаемый файл данные и считывать их? В душе не ебу, что делать с выводом функции MapViewOfFile. Её значение — какой-то адрес в памяти, наверное, как раз на отображаемую область для записи данных, но я не могу ничего с этой переменной сделать, потому, что не знаю, что с ней надо делать. И
http://www.cpp.sh/5g3fmt

И как вот эту ошибку решить? Это можно сделать, не создавая реальный файл на постоянном накопителе? Или обмен данными между процессами через отображаемый в память файл нельзя сделать без наличия реального файла?
изображение.png11 Кб, 979x512
319 1781117
>>81105
Ух ты ебать. Я научился записывать туда чары. А инты можно ли как-то? В методичке по моей лабе про LPSTR вообще нихера не написано, взял из
https://cpp.hotexamples.com/ru/examples/-/-/MapViewOfFile/cpp-mapviewoffile-function-examples.html
Да, иногда полезно самому что-то искать и на свой страх и риск пробовать.
изображение.png30 Кб, 709x539
320 1781118
>>81117
Не та картинка.
изображение.png33 Кб, 1243x589
321 1781120
А вот это почему работает? Вроде ж не должно. И предупреждение ещё вылезает. Я вообще верной дорогой иду?
изображение.png42 Кб, 1257x602
322 1781121
323 1781122
А есть какие-нибудь аналоги контейнеров stl, типа vector в чистом Си?

И много ли будет производительности, если одну криптографическую функцию с C++ на чистый Си переписать?
324 1781123
>>81122
Только самописные через ООП-костыли. В C нету ООП, а векторы это из ООП.
325 1781124
>>81122
Нет. Векторы ничего не стоят в крестах, а их имплементация на сишке, очевидно, будет.
326 1781125
>>81123
умри от рака ебанат
327 1781127
>>81125
Нет.
Nata-Lee-lingerie-6110079.jpeg74 Кб, 810x1095
328 1781130
>>81123
>>81124
Спасибо огромное!
329 1781131
>>81125
А что не так сказано?
изображение.png430 Кб, 480x320
330 1781136
>>81131
Наверное, это сбежавший из крестов.
331 1781203
>>81120

> И предупреждение ещё вылезает.


Если у CreateFileMapping сфэйлится (например, другая программа уже создала объект с таким именем), тебе вернут NULL. Ты это не проверяешь.

>>81120
Работает потому, что изначально память уже забита нулями. Естественно, так лучше не делать и взять strcpy, раз уж ты в тред про сишку пришел. Или даже StringCbCopy, если у тебя Windows API. Ты ведь про это?

>>81124

> Векторы ничего не стоят в крестах, а их имплементация на сишке, очевидно, будет.


Традиционная реализация с void pointer и size_t будет чуть дороже, да. Нетрадиционная #define TYPE double, #include "myvector.tpl.c", #undef TYPE (или просто через один длинный дефайн) будет точно такой же, как в крестах.
332 1781233
>>81094
4, но это были не на настоящие железки, а просто дрова, которые делают разные вещи (последний фильтровал входящие пакеты, я знаю про iptables, но в образовательных целях это было круто)
Планирую раздобыть тех. референс на какую-то железку (думаю, на сетевую карту) и написать на нее свой драйвер в образовательных целях.
333 1781277
>>81120

>И предупреждение ещё вылезает.


Что, компиляторы уже такие умные стали?

if(FileMap != NULL)
CloseHandle(FileMap);

Так ругацца не будет? Хотя по хорошему надо проверять сразу после созданию хэндла.
sage 334 1781280
>>81277
Будет, ибо баг в студии.
sage 335 1781285
>>81066
Сервис обрабатывает запрос и возвращает дескриптор объекта секции в случае успеха.

> Её можно просто применить в дочернем процессе и она автоматически даст ему хэндл последнего созданного в винде объекта типа "отображение файла"?


Можно скопировать хэндл в таблицу дескрипторов удаленного процесса - DuplicateHandle.
336 1781289
>>81233
Круто потому что типа круто? Хуй знает, слишком много ебли с тредами и вообще разработкой, как-то всё лучше, когда есть возможность не лезть в пространство ядра.
337 1781464
>>81289
Круто, потому что субъективно интересно. Есть люди, которые плюются от всего, что ниже пайтона по уровню предоставляемых абстракций, и педалят веб с чувством кайфа. Можно ли их судить за то, что им это нравится? Нет. Точно также и здесь. Есть люди, которым лоу-лвл нравится больше, и которые и в ядро залезть не гнушаются.
338 1781536
>>81122
Есть.
Я uthash пользуюсь, неплохо.
sudo apt install uthash-dev
https://troydhanson.github.io/uthash/
339 1781559
>>81280
Проверял? Там статический анализатор неплохой, и уж такую ерунду прожевать должен нормально.
340 1781760
>>81122

>А есть какие-нибудь аналоги контейнеров stl, типа vector в чистом Си?


В сторонних либах дохуя. На вскидку: sglib, glib, в stb либе есть динамический массив.
341 1781836
Объясните залётной зелени в чём разница объявления строки в этих 2 вариантах и какой из них является наиболее часто юзабельным если границы размыты?:
1. char* string = "pidoras";
2. char string[] = "pidorasina";
(надеюсь правильно написал) И
342 1781884
>>81836
1 - строковый литерал, он иммутабельный
2 - строка на стэке, мутабельная.
343 1781895
>>81884
Толсто.
344 1781900
>>81895
Лолшто? Укажи в чем я неправ (у тебя не получится, потому что я прав)
345 1782125
Сап, программач
Можно ли как то передвигаться по двумерному массиву как по одномерному используя array_name++; ?
При попытке сделать two_demensional_array[n]++ получаю ошибку
346 1782128
>>82125
Все, понял почему я идиот
Нельзя так делать с именем массива
347 1782132
>>81884

>иммутабельный


>мутабельная.


Значение знаешь?
348 1782136
>>77812
Вот.
Никак не могу объяснить линушизикам на деле конечно школоте, что даже если микрософт и высрет 10 новых NIH технологий, то всегда есть гарантия, что каждую будут поддерживать лет 10 минимум.
Покажите мне опенсурс проект, где разработчики своей жопой и судебными исками гарантируют подобное.
Наоборот, ВСЕ опенсурсы начинаются с фразы мы вам ничего не должны.
Это не плохо, это просто факт.
349 1782138
Лучшая книга для введение в винду
https://upload.wikimedia.org/wikipedia/commons/5/57/Windows_Programming.pdf
350 1782144
>>77679

> Сейчас как в линуксе зоопарк подходов, которые, правда, все худо-бедно поддерживаются, но местами уже ломаются


WinApi не ломается, как было основой, так и есть. Все остальные подходы поддерживаются минимум лет 5. Покажи мне где в ядре или не в ядре линукса есть фраза "мы своей жопой гарантируем что ничего не сломаем 5 лет",

>почитай oldnewthing


Эту колонку ПИНК ГАЙ ведет?

>Разница в скорости выполнения небольшая


Каким образом тогда Solidworks какой-нибудь на моей старенькой пеке вполне сносно и комфортно работает а FreeCad тормозит так что хочется убить нахуй?
351 1782147
>>77728

>Он нахуй не нужен в САПР, там нужна графика, матан и инженерное дело.


Я не понял что ты советушь. Если писать расширения для сапр, что еще нужно?
352 1782159
>>82147

>Если писать расширения для сапр, что еще нужно?


Знание предметной области. САПР для проектирования зданий и САПР для электроники ну совсем разные.
353 1782167
>>82159
Ну блядь сука охуеть теперь просто пиздец как же так нахуй жизнь меня к этому не готовила.
354 1782198
>>82132

>иммутабельный


Тип read-only страницы.
изображение.png12 Кб, 617x289
355 1782205
356 1782215
>>82205
В лялихе на 13 строке будет segmentation fault, потому что >>82198.
357 1782221
>>82144

> WinApi не ломается, как было основой, так и есть


Притащи старое приложение, в котором много формочек и графики в целом в десятку c HiDPI, увидишь. Местами сломана последовательность сообщений, местами надо CoInitialize там, где раньше без него работало, ну и т. д.

> мы своей жопой гарантируем что ничего не сломаем 5 лет


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

>>82205
>>82215
Не обязательно сегфолт, все зависит от параметров компилятора, от ld-скрипта. Может, например быть так, что другой "хуй" в программе тоже изменится. Может быть сегфолт, может быть разрешена перезапись, но это дает тебе права перезаписывать литералы.
358 1782228
>>82221

>Не обязательно сегфолт, все зависит от параметров компилятора, от ld-скрипта.


Тип литерал будет не в .rodata в elf-файле? Как кстати это сделать, ну какие параметры у линкера?
359 1782233
>>81124

>Нет. Векторы ничего не стоят в крестах, а их имплементация на сишке, очевидно, будет.



ваще, очень многое перестаёт в сишке стоить, если инклудить не хедер с объявлением функций(как деды завещали), а сорц с имплементацией. Деды это делали из-за лютого отсутствия оперативы в компиляторах и проч. Сейчас же можно прямо так, а компилятор всё збс заинлайнит. Почти весь плюсовый "zero overhead" бьётся нормальным сишным компилятором при условии инклуда сорцов.
изображение.png16 Кб, 649x288
360 1782234
>>82205
Это был tcc
361 1782236
>>82205

>>>1781884



ваще, там стоит использовать стандартный указатель на чар (для обратной совместимости сишка поволяет конвертировать при инициализации указатель на константный чар в указатель на чар)
362 1782241
Антох, а мы еще увидим новый стандарт Сишки, какое-то развитие, или как бы уже и добавить нечего?
363 1782245
>>82228
Раньше вообще было -fwriteable-strings, но потом выпилили.

> какие параметры у линкера


Ну берешь из /lib/ldscripts/ нужный скрипт, правишь (перекладываешь .rodata в .data), скармливаешь его ld через -T.

>>82241

> Антох, а мы еще увидим новый стандарт Сишки, какое-то развитие


Атрибуты же. Смогут заставить тебя писать про fallthrough в switch или, например, обязательно обрабатывать результаты функций, если разработчик захочет. Черновик в шапке есть, сам смотри.
364 1782251
>>82228

>Как кстати это сделать


А зачем? Вот вопрос.
365 1782287
>>82245
Спс
>>82251
Для общего развития.
366 1782675
>>81884

>строковый литерал


>иммутабельный


Получается юзабельный только для вывода и сравнения с ним или я хуй пойму?
367 1782829
>>82675
А как ты иначе сделаешь то? Они все равно в read-only в бинарнике хранятся. Даже те что char str[]="bla" создаются на стеке и в них копируется эта строка из read only литерала.
368 1782830
>>82221

>Я с этим и не спорил


Ну а что еще есть-то? Не брать же яблоко, в самом деле. В реальности есть только два стула.
369 1782838
>>82829
Чел, ты не понял сути вопроса. Эти ваши строковые литералы суть #define или константная переменная или есть в них какой-то более глубокий смысл?
370 1782891

>typedef long LONG;


>typedef int INT;


>typedef short SHORT;


>typedef char CHAR;


Кристалльно чистый NIH, аж глаза щиплет.
Screenshot from 2020-08-20 15-51-51.png82 Кб, 1920x1080
371 1782909
Объясните мне какого хуя оно 80?
372 1782911
>>82909
Потому что ты запрашиваешь размер массива. 8 бит 1 элемент, массив длины 10.
373 1782912
>>82838

>Эти ваши строковые литералы суть #define или константная переменная или есть в них какой-то более глубокий смысл?



Суть высраный загрузчиком оси где то после запуска экзешника или эльфа массив чаров который может лежать в разных секциях кучи в зависимости от конпелятора оси. Где он будет лежать и соснешь ли ты хуйца попытавшись в него что либо записать - ось специфик и имплементатион дефайнед.
374 1782958
>>82838
Что такое литералы вроде на первых страницах учебников по информатике объясняют. Это кастомный токен.
375 1782962
>>82911

А какого хуя тогда размер инта в байтах, ммм, уеба?
376 1782965
>>82909
а сколько по твоему должен занимать массив из десяти указателей в 64битной программе?
377 1783126
>>82909
звезду спрячь, и будет как надо; либо со звездой на 1 переменную, и забери маллоком
378 1783330
>>82891

>Кристалльно чистый NIH, аж глаза щиплет.


Ващета нет. int может быть 16/32/64 б
char обычно 8 бит, но может быть и 16 и наверное даже 32 и 64.
379 1783395
>>82909
У тебя явно 64-битная ОСь, где адрес имеет размер 8 байт.
у Тебя массив из 10 указателей на чар. Каждый указатель 8 байт. 8*10 = 80.
380 1783398
>>82838
#define просто делает find & replace ДО компиляции.
Если это #define huy 1, то все инстансы huy заменяются на 1, что фактически порождает магическое число без адреса (ибо эта 1 не присвоена ни к какой переменной).

В случае с константами, все зависит от ABI (в плане ГДЕ константа помещается в памяти), но факт - есть переменная, которая сожержит какое-то значение. Для отладки это явно лучше, нежели дефайновысирание.
381 1783423
>>83398

>Для отладки это явно лучше, нежели дефайновысирание.


А с точки зрения практичности и не говнокода?
382 1783435
>>83398

> Для отладки это явно лучше


Для отладки есть символы, ты видишь исходник, в исходнике дефайны, а не замененные значения. При этом const - это возможные тормоза из-за проблем с алиасингом, это невозможность использовать такие константы для массивов, это полная зависимость от того, будет ли компилятор достаточно умным, чтобы такие константы свернуть. В общем, в Си const для чего-то кроме указателей - плохой тон и непонимание языка.
383 1783436
>>83435
Толсто.
384 1783437
>>83436
По существу возразить нечего?
385 1783440
>>83423
абьюз дефайнов - говнокод
В Си порой нет выхода, в плюсах за абьюз (или даже просто ненавязчивое использование) вообще в жопу ебут раскаленным кактусом и поделом
386 1783441
>>83440
Дефайны - единственный вменяемый способ делать константы в Си. В крестах const и enum исправили, поэтому в крестах дефайны с константами гораздо менее важны и используются только если нужно обеспечить совместимость хедеров с Си.
387 1783483
>>83423
Для всего лучше не использовать дефайны, ведь это текстовый макрос исходного кода, по сути обфускатор, затрудняющий чтение текста и размывающий связь между конструктами исходного текста и исполняемого кода. Отсюда же, макросы нельзя отлаживать, ведь это не код.
388 1783497
Посоветуйте fgets для массива чисел, вот чтобы вот так вжух, и весь массив одной командой. Не, ну а хули? fgets же тоже массив принимает, но только чаров.
389 1783511
>>83497
прими массив чаров а потом циклом прибавь +'0'
390 1783598
>>83497
fgets же только для записи в файл юзается, разве нет?
391 1783620
>>83598
особенно для записи в stdin
392 1783629
>>83620
Зачем если есть просто gets?
393 1783661
>>83629

> C11. Major changes from the previous edition include:


> removed the gets function (<stdio.h>)

394 1783663
>>83661
Та за що?
sage 395 1783678
>>83663
Потому что дыра, которую нельзя ни исправить, ни обойти. char buffer[4]; gets(buffer); вводишь 5 букв, пиздец. Потому что стыдно в 21 веке иметь такое в стандартной библиотеке.
396 1783699
>>83678
А fgets получается швейцарский нож?
sage 397 1783704
>>83699
Да, ты можешь указать ему stdin.
398 1783709
Ладно, поговорим серьёзно. Т.е. об аргументах printf.
Не скажу за Linux, но printf в MSVC в 32 битах не знает аргументов типа float, только double.

Для меня это было откровение, пошукал в интернетах и обнаружил что копилятор при вызове printf аргументы с типом float приводятся к типу double.

Собственно интересно на каком этапе компилятор приводит преобразование типа. Зачем это сделано? Но главное - когда?
399 1783713
>>83629
Толсто
400 1783716
>>83713
Какое нахуй толсто? Я впервые учебник открыл неделю назад.
401 1783722
>>83716
А, ты совсем зелень. Тогда простительно. Не юзай gets, короче.
402 1783725
>>83722
Да понял уже.
403 1783728
>>83716

>Я впервые учебник открыл неделю назад.


Первую программу на Си, за которую полчил деньги, я написал в 1993 году.
404 1783734
>>83728
Соболезную. Чем сейчас занимаешься?
sage 405 1783740
>>83709

> Собственно интересно на каком этапе компилятор приводит преобразование типа. Зачем это сделано?


Перед вызовом функции, когда он не знает типа параметра, внезапно. То есть когда у тебя функция декларирована как void func(); или когда у функции есть ... в параметрах (разница не большая).
406 1783754
>>83709
из-за VARGS это происходит. И это делает не компилятор, а в самой реализации прописано такое поведение.
407 1783770
>>83734
Программирую. Это ведь классно когда работа совпадает с хобби.
408 1783772
>>83754
Спасибо.
409 1783777
>>83770
Где работаешь? Какая зп?
410 1783781
>>83777
Да на шарпе пишу хайлоад для пиндосов. На си работы нет. Про зп не говорю
411 1783791
>>83781

>На си работы нет.


С чего бы это? Есть же вакансии С++.
412 1783793
>>83791
представляешь хоть как разработка на С++ отличается от разработки на С?
413 1783802
>>83793
Конечно. Большинство корректно написанных на Си программ скомпилируется под C++. Не используй шаблоны, классы, исключения и другие расширения языка и всё заработает.

А сишнику выучить С++ проще простого. Если не знает с чего начать, то пусть включит компиляцию в ассемблер и смотрит чего генерирует С++. Так и выучит постепенно.
414 1783812
>>83802

>А сишнику выучить С++ проще простого.


Норм, а то мне все говорили что учить си перед крестами плохая идея.
415 1783815
>>83802
И ты реально думаешь что выучить синтаксис, пару либок и нано-частицы буста будет достаточно чтобы не обосраться на крестовом проекте?
416 1783838
https://repl.it/repls/OverdueUnevenObservatory
Можно было сделать лучше или и так хорошо? Вроде работает as intended. Хотел сделать через switchcase но пососал бибу.
417 1783854
>>83838

>void print_report(const char str);


>


>int main(void)


>{


> ...


>}


>void print_report(const char str)


>{



Как деды завещали
418 1783858
>>83854
Типо указатель не нужон? Почему так?
419 1783862
>>83858
орнул просто с объявления и определения в разных местах, реально как дядя бьорн в 85-ом завещал
420 1783867
>>83862
Это плохо или хорошо? И что именно?
421 1783870
>>83815
Не понял твоего вопроса. Ты сейчас историю из жизни хочешь рассказать? Мой посыл прост - если ты понимаешь что генерирует компилятор, то шансы выучить С++ у знающего Си вырастают на порядок.
422 1783877
>>83781

>На си работы нет


Драйверописатели в разных там Quallcom, Mellanox, Nvidia, Marvell и т.п. всплакнули после такого смелого заявления

И нет, кресты при этом не юзают, так как там в 99% случаев на железке крутится Линукс, там только на Си драйверы и писать.
423 1784305
А я сегодня узнал, что необязательно ставить разные gcc для кросс-компиляции. Достаточно вызвать clang -target mips или clang -target aarch64. Компоновку только не пройдет.
424 1784454
>>84305

>clang


фу
.png120 Кб, 793x445
425 1784482
Никак не могу понять, зачем в функцию sendto передаётся два сокета: первый в int s, второй в to?
Я думал, для того чтобы передать кому-то что-то, нужен всего 1 сокет.
426 1784521
int i = 0;
int p, p2;
p = &i - получает адрес i
p = i - что получает?
И что по дереференсу?
427 1784522
>>84521

>int p, p2;


Ну это указатели очевидно.
428 1784531
>>84521
Ничего не получает. Ты пытаешься адресной переменной присвоить числовое значение.
нужно *p = i, при условии, что в p не находится мусор, тогда в области памяти, на которую указывает p, будет находиться значение i
429 1784533
>>84521
Блин, не посмотрел, что i = 0. Тут уже как посмотрит на это компилятор, мб не будет ругаться. Но скорее всего будет
sage 430 1784539
>>84482
В отличие от TCP, в UDP не устанавливаются соединения, поэтому тебе для каждого пакета нужны и исходный адрес (хранится в s, присваивается при посылке первого пакета, или если ты явно делаешь bind), и адрес назначения (to). В TCP ты устанавливаешь адрес назначения, делая connect. Но если адрес назначения у тебя для всех пакетов один и тот же, ты можешь сделать connect на него и в UDP. Соединения как такогово все равно не произойдет, но сокет запомнит у себя внутри адрес назначения, и ты сможешь использовать обычный send.

>>84533

> Тут уже как посмотрит на это компилятор, мб не будет ругаться.


Ноль работает как NULL только когда он циферкой написан или он результат выражения, которое можно вычислить на этапе компиляции. Когда идет преобразование из целочисленной переменной в указатель, никакой особой магии уже не происходит, и результат implementation defined, даже если в переменной ноль. В реальности, конечно, все конвертируется, и все работает, но гарантий нет.
431 1784578
Аноны, по каким причинам Лялекс настолько портабельный? Его запускают на всем, даже на картошке, блять. Почему это так? Сайд-эффекты попенсорса? Почему винда популярна только в десктопе?
432 1784603
>>84578
Потому что шин это в ПЕРВУЮ ОЧЕРЕДЬ десктоп система, а Ляля — в десятую.
433 1784611
>>84578

> Почему это так?


Может потому-что никому в голову не придёт портировать шинду под такое железо? Да и как портировать - исходного кода то нет.
sage 434 1784632
>>84578
По каким причинам линуксо-дебил промазал не только мимо треда, но и мимо раздела? Ах, да, именно по этой причине: линукс = дебил. Доказано, все свободны.
435 1784673
Это процесс A
http://www.cpp.sh/3cihj
А это процесс B
http://www.cpp.sh/5m4vr
Процесс A должен порождать процесс B и передавать в него массив интов. С чарами работает, но когда я попытался переписать код под инты/, уже нихуя не работает. Вот вариант для чаров, который исправно работает.
http://www.cpp.sh/5kosv
http://www.cpp.sh/5kosv

Что я делаю не так, пытаясь переделать это код под инты?
asdf.jpg53 Кб, 800x533
436 1784674
>>84632
смотрите, шиндовыблядок-говноед порвался!
437 1784675
>>84673
Рабочий B для чаров забыл
http://www.cpp.sh/44jqe
CFIHbpLAiWA.jpg126 Кб, 1200x488
438 1784728
привет, анон, помоги советом нубу. Короче хочу стать тем самым старым дедом, который на пикрил справа. Понятно, что в таком случае знать нужно до жопы блять дохуя, но ничего, времени и желания много.
Короче вопрос: с чего начать? образование профильное, пару лет встраиваемых систем есть, уник только вот вчера диплом получил. Куда двигаться? Есть ли работа по разработка драйверов/системное проганье для людей не с 13242342 годами опыта блять? И вообще востребованно ли? А то пидорюги с котлином и андроидом по миллиарду в наносекунду получают, а мы типа хуи сосем или как?
Кроче буду рад ответам, спасибо
439 1784736
>>84578
Полагаю винда не очень модульная, из нее сложно выкинуть какой то кусок который не влезает. Плюс это не их рынок поэтому им дела особо не было. Хотя иногда пытались делать всякие штуки типа NET Compact Framework. Да и 10-ку вроде запускают, специально порезанную.
440 1784743
>>84736
На самом деле они достаточно много могут вырезать, можешь серверные окна посмотреть. Я не эксперт по ядру винды, но подозреваю что проблема в том что у них много что склеено вместе из-за обратной совместимости, и например даже гуи сервисы из условного винсервера нельзя вырезать без ущерба другому важному функционалу
441 1784762
>>84736

>Полагаю винда не очень модульная


Винда ГРАФИЧЕСКАЯ, что отсекает все что не компьютеры, и тем более всякие кофеварки.
442 1784782
>>84578
Сайд эффекты бизнеса и с ним связанного.
Так то они сварганили дот нет работающий на bare metal с 64к озу, но где те толпы шарпистов пишущих для утюгов и светофоров? Рыночек порешал.
443 1784796
>>84728
Заводи трактор, анон, в сранах СНГ будешь сосать хуи. Это нужно, но в развитых странах, а не в постсовковой отсталой параше.

Ныряй в ядро Линукса, читай его код, учить писать драйвера и прошивки, тут особо нечего посоветовать, кроме как просто учить. И да, если ты не знаешь инглиш минимум на уровне upper intermediate - сосешь хуи автоматически, причем без шансов. Удачи в нелегком деле.
444 1784818
>>84796

>в развитых странах


Как укрогабония или там где встают на колени перед неграми?
Обоссал хохлолибераху
446 1784820
>>84818
уркоина и еблорусия - точно такие же помойки, как и парашка, хз вообще о чем ты
447 1784850
>>84820
Я не считаю Россию парашей, а вот мнение всяких либиральных гандонов вроде тебя, вечно ноющих и сидящих у мамки на шее, никакого внимания не заслуживает.
448 1784853
>>84820

>уркоина и еблорусия


Так уебуй к своим братушкам неграм или проебалтам
sage 449 1784959
>>84673

> уже нихуя не работает


Что именно не работает, как выражается нихуя, кто будет за тебя ошибки обрабатывать? И там volatile напрашивается для указателя на вью. И вообще это кресты. И вообще, нахуй мешать в кучу пайпы, события и замапленные файлы - непонятно.
450 1785120
>>84959
Мне тоже непонятно. Это пример к лабе, который мне бы только переделать под инты, кое-что своё добавить и с чистой совестью наебать преподшу, сдав ей свою лабу на базе её высера и послать уже её нахуй с её генгбенгами процессов под виндой.
451 1785121
>>84959
И кстати, этот пример ещё и не работал изкаробки, мне пришлось переделывать его с помощью анона из этого же треда.
452 1785145
Юзают ли в современном коде goto и do/while?
453 1785148
>>85145
1. Местами. 2. Конечно. И плачут, когда приходится недоязыками пользоваться, где его нет.
454 1785149
>>85145
goto в сурцах ядра дохуя встречал, по крайней мере до 4.х.х. точно есть. А что плохого во второй конструкции - понятия не имею.
455 1785152
https://godbolt.org/z/GveGfe
Откуда эта тварына высирает сегфолт то блять? Я ненавижу свой код, помогите.
456 1785155
>>85152
Настолько злой что забыл дописать что обычный gcc из терминала всё нормально компилит и на выходе работает. Но код и всё остальное ругается шо пиздец.
457 1785161
>>85152
Ты вот хелп показал при неправильных аргументах, а дальше что произойдет?
458 1785165

>The only problem is that we do


not normally want the cdev structure itself, we want the scull_dev structure that con-
tains that cdev structure. The C language lets programmers play all sorts of tricks to
make that kind of conversion; programming such tricks is error prone,

Я правильно понял, что Сишечка позволяет получить каким-то образом владеющую структуру без линков из текущего поля?
459 1785166
>>85161
https://godbolt.org/z/dqdezq
Когда-то там были ретурны, но пришёл народ огня и выпилил их из моего кода.
460 1785169
>>85165
Что нибудь типа
struct inner;
struct outer {
int i;
struct inner s; };

И потом
foo(inner •ptr) {
outer •optr = ptr-sizeof(int)
461 1785173
>>85169
Переделай с offsetof(), и будет настоящий CONTAINING_RECORD(ptr, parent, field).
462 1785183
>>84796
спасибо, анон, что откликнулся на зов вкатыша. а почему это какое-то уникальное дело? к слову, в баду, янедексе и касперском есть такие вакансии (ну там опыта пизда надо конечно), это только потому что они себе могут такую хуйню позволить или я плохо ищу?
463 1785211
>>85183
Вкатываться в айти вообще стало сложнее, ибо произошел vkatish overloading
Дело не уникальное, просто в парашке с технологиями напряг, по сути только вебмакакам относительно неплохо живется. Рыночек так порешал.
Мало фирм, которые производят кастомное железо, засим и позиции драйверо/прошивкописатаелей на лялекс мало, поэтому в парашке любое упоминание про эмбеддед и лоу-лвл в целом дает референс к совковым пердедам, которые педалят какой-то радиолегаси 50-ти летней давности, нежели к автономным машинам и IoT, как в развитых странах. Отсюда и проблема.
464 1785340
>>84782

>сварганили дот нет работающий на bare metal с 64к озу


No way.

>но где те толпы шарпистов пишущих для утюгов и светофоров?


Практического смысла нет на 64 К озу.
465 1785344
>>85145

>Юзают ли в современном коде goto и do/while?



С помощью do|while в чистом Си можно писать интересные конструкции с break. Юзают его активно. Например, когда в коде много проверок. Позволяет избежать множественную вложенность if. Как по мне - код более красив и читаем.

goto хорош в конечных автоматах - при их реализации исрользование goto позволяет значительно уменьшить и упростить код.
467 1785363
>>85211
говно, говно
а если не секрет, чем сам занимаешься?
468 1785367
>>85363
Раньше писал драйвера в фирмах, которые производили железо.
Сейчас я security researcher.
469 1785383
>>85152
>>85166
https://godbolt.org/z/7e6rjj
Пофиксил наконец эту хуиту костылянием через else if. Воооот, дааа. Держу в курсе короче.
470 1785394
>>85367
типа можно легко пересесть в секьюрити с такой базой? или профильное образование просто?
471 1785410
>>85394
Любая крепкая программерская база хороша для секьюрити - для низкоуровневой безопасности С/С++, для веб-безопасности - отличное знание js, php. Дальше ты только сам учишь релевантные вещи.
472 1785421
>>85410
Сколько лет кодишь?
473 1785426
>>85410
прикольно, а речь о касперском или он не один в рашке (москве)?
474 1785450
>>85421
3 года
>>85426
Я не живу в странах СНГ (хотя у лаборатории Касперского вроде есть и забугром офисы)
image.png105 Кб, 1232x653
475 1785454
>>79251
Факториал таки посчитался.
Осталось перетащить под gcc и вылить на гитхаб.
476 1785496
>>85450
все пиздец хочу быть тобой
477 1785497
>>85450
а есть какой-нибудь более менее четкий пайплайн как и что читать/кодить, может пет проекты и тд
478 1785528
В современных интерпретаторах/компиляторах/рекомпиляторах есть какие-то ограничения на размеры таблиц объектов, кроме разумеется аппаратных?
479 1785610
>>85497
Нужна мотивация, а без любви к этому делу этой мотивации быть не может. Деньги на непыльной работе, как ни странно, один из худших мотиваторов, видел на примере некоторых знакомых.
Я далеко не гений, но так получилось, что я смог учиться каждый день по 5-8 (иногда даже по 12) часов в течение этого времени практически не переставая, не выгорая при этом. Вот поэтому все так относительно быстро и получилось.

Если ты больше угораешь по лоу-левелу, исходя из того в каком мы сейчас треде, то по пет-проектам выбор достаточно большой и разнообразный. Примеры пет проектов: мини-ядро (не надо пытаться написать полноценный клон Линукса, не получится, естественно), виртуальная машина, медиа-плеер, компилятор, драйвер/прошивка под какую-нибудь опенсорс железку. Выбираешь то, что нравится, и штурмуешь. Насчет секьюрити - тут все гораздо сложнее, нужно уметь анализировать программы (отладка + реверсинг), к которым часто нет доступного исходного кода, нужно уметь юзать существующий тулинг, хорошо знать язык ассемблера целевой архитектуры и OS internals, очень желательно уметь писать кастомный тулинг, в частности фаззеры, знать примитивы эксплуатации и в общем иметь некую интуицию, которая поможет правильно выбрать цель и оценить attack surface.

Вода камень точит. Если у человека есть страсть, то со временем он будет хорошим спецом. Мне до хорошего спеца еще учиться и учиться, если честно, это как бездонная кроличья нора.
Screenshot20200823-182203Chrome.jpg236 Кб, 1080x1395
480 1785718
Как вам такое, байтослесари?
481 1785736
>>85718
Как считали и что значат эти цифры?
sage 482 1785740
>>85718

> Languages


> Arduino


> рандомная диаграмма без источников

483 1785748
>>85718

> нет джавы


Похоже на какой-то пиздешь. Ну и сравнивать Verilog/VHDL с другими языками это какой-то толи троллинг толи тупость.
484 1785749
>>85718
Как там хелловорлд на Ардуино выглядит?
485 1785848
>>85718
Пайтон - скриптовый язык. Ха ха ха.
486 1785859
>>85848
Ну и что?
487 1785863
>>85859
Скрипты по энергопотреблению менее эффективны. Не?
488 1785884
>>85863
Пчел там пишут либо для микрухи с гигабайтами ОЗУ, либо на микропайтоне/сайтоне, которые питоном-то только формально являются. Это уже не говоря о том что картинка сама по себе пиздабольство залетного зелёного
489 1785974
>>85610
спасибо, удачи тебе, единственный адекватный человек на дваче
490 1785998
Здесь есть хоть один человек который перед вкатом читал SICP? Расскажите дало ли оно вам что-то.
491 1786015
>>85998
Дурак, SICP - это мем двача, его никто не читал.
492 1786070
>>86015
Поэтому я и спрашиваю это на двачах, гений.
493 1786074
>>86070
Пчел ну ты дурак? Сикп читают те кто хочет вкатиться в информатику и конкретно компьютер саенс, при этом не имея бекграунда. Если у тебя цель просто вкатиться в любую работку, связанную с программированием - то он тебе нахуй не нужен. Сечешь блядь? Разные вещи. Газуй с треда.
494 1786112
>>85718
>>85736
Скорее всего голосовалка какая-нибудь
495 1786130
>>86074
Разумеется, на работе ведь никто не юзает абстракцию.
496 1786131
>>85998
Читал. Дало или нет не могу знать, так как для этого надо отмотать время и попробовать вкатился без него, а потом сравнить результаты.
maxresdefault.jpg93 Кб, 1280x720
497 1786145
>>85718
Как тебе Embedded система, залетный дебил?
498 1786202
>>86074
Да мне оно нахуй не нужно твоё объяснение что, зачем и как. Я задал чёткий вопрос - дрочил ли кто-то и что дало, всё.
sage 499 1786223
>>86202
Я дрочил, но имея уже много разнообразного опыта. Дало понимание, что лишп не нужен не только мне, он воодще никому не нужен (собственно, понимание еще во время чтения введения возникло). Ничего нового не узнал, какой-то бессмысленный мазохизм.
500 1786312
Здесь бамп-лимит в 500 постов?
Неприятно что тред заканчивается на такой ноте.
55289938-093e7500-53cd-11e9-9353-4640e2a9c3c6.png29 Кб, 701x354
502 1788776
>>85718
Так, а где же баш? Почему баша нет?
>>86145
Збс мне ембеддед система, школьник ты ебаный.
Тред утонул или удален.
Это копия, сохраненная 9 марта 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски