LINUX.ORG.RU
Ответ на: комментарий от beastie

Лол, а я не знал что оно в стеке за аргументами лежит! Век живи, век учись. Спасибо 0_0!

Вопрос в том почему я раньше этого никогда не видел… У меня в мыслях не было даже взять и дальше argv прочитать, ибо смысл мусор то читать, ну как бы, а оно вона как. :D

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

На самом деле этот тот случай, когда это не стандарт, но почти везде есть.

https://stackoverflow.com/questions/10321435/is-char-envp-as-a-third-argument-to-main-portable

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от beastie

На самом деле этот тот случай, когда это не стандарт, но почти везде есть.

Зато есть extern char **environ, ибо его не может не быть, хотя бы для чтобы работала getenv, а самому таскать envp из main по всей вложенности функций та ещё радость, это же не всегда можно ограничиваться только в самом начале при разборе стартовых опций и аргументов. Единственно где envp очень полезно — это только для перезаписи командной строки для proc/ps для правильного определения их размера до envpn.

vodz ★★★★★
()
Ответ на: комментарий от hippi90

А что же это?

SQL (МФА: [ˈɛsˈkjuˈɛl]; аббр. от англ. Structured Query Language — «язык структурированных запросов») — декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных.

В общем случае SQL (без ряда современных расширений) считается языком программирования неполным по Тьюрингу, но вместе с тем стандарт языка спецификацией SQL/PSM предусматривает возможность его процедурных расширений.

https://ru.wikipedia.org/wiki/SQL

Впрочем, вангую, что сейчас будет «на википедии писали неучи, у меня своё уникальное определение языка программирования, ограничивающееся general purpose языками + свои заморочки»…

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от Psilocybe

И? Читай дальше, а не только то, что в скобках. Во-первых, это не взаимоисключающие понятия, во-вторых, «язык структурированных запросов» это, собственно, перевод расшифровки аббривиатуры SQL, а не определение (впрочем, как определение, оно тоже подходит, несомненно).

CrX ★★★★★
()
Ответ на: комментарий от CrX

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

Впрочем, вангую, что сейчас будет «на википедии писали неучи, у меня своё уникальное определение языка программирования… »

«Если у тебя аниме на аватарке, то твоё мнение не учитывается» (c)

Aswed ★★★★★
()
Ответ на: комментарий от Aswed

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

Нет. Из первого не следует второе. Потому что это как раз ЯП формально и могут быть полные по Тьюрингу или неполные. Собственно поэтому словосочетания типа «тьюринг-полный язык программирования», «язык программирования общего назначения» и прочие имеют смысл, что ЯП бывают разные. Но почему-то конкретно на ЛОРе есть довольно много людей, которые называют языками программирования только некоторую их часть.

Это как с ИИ. Есть сильный ИИ, есть слабый ИИ, но на ЛОРе (да и в рунете в целом, к сожалению), есть целая толпа невежд, орущих, что «ИИ ещё не создан», подразумевая, что слабы ИИ — это не ИИ вовсе. С ЯП, походу, та же история.

Любят люди расширять и сужать границы вполне чётко определённых понятий на собственный вкус.

Примером же не сужения, а наоборот расширения понятия (на сей раз тут не только рунет отличился, а весь мир) могут служить roguelike-игры. Раньше это были вполне конкретный игры: hack’n’slash rpg/dungeon-crawler игры, при этом пошаговые с перемещением по тайлам, рандомной генерацией уровней и предметов, без отдельного экрана боя, с пермасмертью и т.д. (желательно ещё и в ASCII, но ладно, этим одним уже давно принебрегли, оно не так важно для жанра). Сейчас же этот ярлык (в силу того, что он продающий) лепят на всё где есть что-то одно похожее (обычно рандомная генерация уровней или пермасмерть, иногда оба), поэтому у нас уже есть roguelike-шутеры от первого лица, rogue-like автогонки и пр…

В любом случае, спорить о терминах глупо. О них надо договариваться так, чтобы понимать друг друга, а спорить уже по существу вопроса. Доказывать, что SQL — это ЯП, или что SQL — это не ЯП, это уже какое-то перетирание воды в ступе. Ведь это зависит не от каких-то фундаментальных свойств самого явления, а исключительно от того, какое определение ЯП больше нравится одной и другой стороне. Обычно дальше идёт перекидывание, чей источник авторитетнее («а в таком словаре написано», «да этот словарь писали не специалисты, а вот у меня вузовский учебник», «да этот советский, там одни бездари жили, вот нормальный европейский, в нём не так», и далее по списку), а это мне, честно говоря, не интересно. Ведь суть была совсем в другом:

SQL был лишь как пример пример того, что пост «Да как бы любой ЯП умеет читать переменные окружения» не только абсолютно бесполезен как для ТС, так и для остальных читающих, но ещё и совершенно не верен. Вместо SQL я мог привести 1С (впрочем, насчёт него я не уверен), или Brainfuck или ещё какой-нибудь эзотерический, или какие-нибудь школьные обучающие ЯП, где тоже этой фичи нет.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 3)
Ответ на: комментарий от CrX

SQL не умеет.

Умеет. В практически любой реализации есть возможность читать переменные окружения либо напрямую, например, «$(имя_переменной)», либо через вызовы встроенных процедур, либо через вызов внешнего шелла.

raspopov
()
Ответ на: комментарий от CrX

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

Werenter ★★☆
() автор топика
Ответ на: комментарий от CrX

Это не язык умеет, а конкретные реализации

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

raspopov
()
Ответ на: комментарий от raspopov

С чего Вы взяли, что я это путаю? Original_1, которому я изначально отвечал, приведя самый наглядный пример, возможно путает. Про «концепцию обработки информации» вообще никто ничего не говорил ;)

CrX ★★★★★
()
Ответ на: комментарий от CrX

С чего Вы взяли, что я это путаю? Про «концепцию обработки информации» вообще никто ничего не говорил

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

raspopov
()