Size: a a a

2019 March 08

ML

Maksim Lapshin in pro.elixir
Абсолютно
источник
2019 March 09

B

Buckler in pro.elixir
Привет, https://telegram.marketinghttps://telegram.marketing!

Пожалуйста, реши капчу:

Вычисли: 46+98=...

Осталось попыток: 3
Если не решишь - забаню навеки...
Удачи!
источник

ИА

Игорь Агапов in pro.elixir
кана
не проблема, я выше спросил - есть ли какое-нибудь лучшее решение, когда нужен меилбокс, но не нужен стейт
Добрый день!
Смени пожалуйста свой ник
источник

ИА

Игорь Агапов in pro.elixir
Он не должен. Я вежливо прошу это сделать
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Как из Эликсира открыть vim? И это вообще реально?
источник

B

Buckler in pro.elixir
Привет, Wayne!

Пожалуйста, реши капчу:

Вычисли: 94+42=...

Осталось попыток: 2
Если не решишь - забаню навеки...
Удачи!
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Скажем, в руби команда system("vim") открывает легко. Но Erlang как то по другому работает с терминалами чтоли, и корочем там все плохо
источник

ŹR

Źmićer Rubinštejn in pro.elixir
:os.cmd и System.cmd стартует процессы хз где
источник

ML

Maksim Lapshin in pro.elixir
os:cmd честно спаунит процесс, как это положено
источник

ML

Maksim Lapshin in pro.elixir
если ты хочешь попросить операционку с гуем стартовать процесс, что бы открылся какой-то гуй, то тебе нужно что-то типа вызова команды start или open, которая попросит операционку запустить софтину
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Maksim Lapshin
os:cmd честно спаунит процесс, как это положено
Да, фишка в том что мне надо не честно заспаунить процесс, а передать ему stdin/out iex шела
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Вот irb шелл это делает сам
источник

ML

Maksim Lapshin in pro.elixir
Źmićer Rubinštejn
Да, фишка в том что мне надо не честно заспаунить процесс, а передать ему stdin/out iex шела
давай попробуем разобраться. При запуске процесса есть следующие концепции:

fork
exec
pipe
tty char/line buffer
group


Какие из них тебе знакомы или незнакомы? Ну что бы на одном языке обсуждать
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Ну я с большего слышал про все это, не очень подробно.
Pipe это |?
Group - это про права?
источник

ML

Maksim Lapshin in pro.elixir
когда ты в шелле делаешь |, то да — ты просишь сделать вызов pipe
источник

ML

Maksim Lapshin in pro.elixir
смотри, в юниксе процесс может породиться только системным вызовом fork, который делает полную копию текущего процесса.

Как правило почти всегда после fork идет exec, который указывает какой файл надо запустить внутри текущего процесса
источник

ML

Maksim Lapshin in pro.elixir
т.е. можно взять и на ходу превратить текущий процесс в другой
источник

ML

Maksim Lapshin in pro.elixir
вот у тебя был запущен vim, а ты его превратил в эрланг и обратно
источник

ML

Maksim Lapshin in pro.elixir
каша будет страшная, но это возможно
источник

ML

Maksim Lapshin in pro.elixir
что бы новый процесс мог общаться со старым, есть такая штука как  вызов pipe.  Он возвращает два файловых дескриптора. В один можно писать, из другого читать.

Соответственно код пишется так, что бы один конец остался в одном процессе после exec, другой в другом
источник