Как до н.э отличается от dc?

Если можно получить PID процесса, можно использовать

kill –STOPpid

приостанавливать процесс, и

kill –CONTpid

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

29
13.04.2014, 12:30
4 ответа

dc[113975] является очень архаичным инструментом и несколько старше [113976]bc[113977]. Цитируя [113978]Wikipedia page[113979]:
Это одна из старейших утилит Unix, предшествовавшая даже изобретению языка программирования Си; как и другие утилиты этого старого образца, она обладает мощным набором возможностей, но чрезвычайно лаконичным синтаксисом.

Синтаксис - это обратная польская нотация, что в основном означает, что сначала аргументы (т.е. числа), а затем оператор. Основным примером использования [113982]dc[113983] является:

Где [113984]p[113985] требуется распечатать результат вычисления. С другой стороны, в [113986]bc[113987] используется более привычная надстрочная нотация и, таким образом, более интуитивно понятная для использования. Вот пример использования [113988]bc[113989]:

Какую из них использовать?

enter image description here

bc[113991] стандартизирован POSIX и, вероятно, является более портативным из двух (по крайней мере, на современных системах). Если вы выполняете работу ручного калькулятора, то это определенно выбор (если только вы в какой-то степени не мазохист). [113992]dc[113993] все еще может иметь свое применение, однако, вот случай, когда обратная польская нотация пригодится. Представьте, что у Вас есть программа, которая выводит поток чисел, которые Вы хотите суммировать, например:

Для этого с помощью [113994]dc[113995] очень просто (по крайней мере, в современных реализациях, где каждый оператор может принимать более двух чисел), так как Вам нужно только добавить к потоку [113996]+p[113997], например, [113996]+p[113997]:

Но с [113998]bc[113999] это сложнее, так как нам нужно не только поставить [114000]+

между [114003] каждым числом и убедиться, что все находится на одной строке, но и убедиться, что в конце есть новая строка:

36
27.01.2020, 19:38
[113496] Основное различие между ними заключается в том, что в [113956]dc[113957] используется [113958] обратная польская нотация [113959]. Она требует явных команд даже для того, чтобы получить результат.


Вы можете добавить два целых числа в [113960]bc[113961], сказав:

и это приведет к появлению [113962]6[113963] на строке само по себе. Однако, в [113964]dc[113965] Вам нужно будет сказать:

$ sudo su [enter]
# dd if=/dev/random of=/dev/sda bs=512 count=1 seek=62 [enter]
# dd if=/dev/zero of=/dev/sda bs=512 count=1 seek=62 [enter]

Вы также можете сделать много забавных вещей, используя [113966]dc[113967], например, обратитесь к моему ответу [113968] здесь [113969] для создания

repeat [times] [command]

, используя [113970]dc[113971].

dc<<<<8 9*P101P108P108P111P4 8*P81 6+P111P114P108P100P33P"

9
27.01.2020, 19:38

enter image description here

dc[113945] - вычислитель, в то время как [113946]bc[113947] - актуальный язык. См. их man-страницы.

dc

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

bc

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

Это действительно зависит от того, что вы, в конечном счете, хотите сделать математически. Некоторые операции невозможно выполнить с помощью [113952]dc[113953]. Я использовал и то, и другое на протяжении многих лет в дополнение к нескольким другим инструментам калькулятора командной строки. Смотрите "[113954]выражение командной строки solver?[113955]" для некоторых дополнительных примеров.[113495].

3
27.01.2020, 19:38

По моему скромному мнению и в возможно меньшем количестве слов, GNU dc отличается от GNU bc тремя способами:

1 )Если математическая библиотека bc не имеет значения, экономить как можно больше нажатий клавиш (словами Яна Лукасевича :круглые скобки -свободная запись )при выполнении элементарных арифметических действий, сконцентрироваться больше о самом необходимом и чтобы не отвлекаться.

2 )В командной строке Microsoft Windows 7 GNU dc потребляет меньше памяти (~320K ), чем GNU bc (~360K ).

3 )Более детальный контроль в GNU dc, чем в GNU bc, например, команды стека и регистра отсутствуют в GNU bc.

Версия 1.07.1 win32 для обоих находится по адресуhttps://embedeo.org/ws/command_line/bc_dc_calculator_windows/

0
27.01.2020, 19:38

Теги

Похожие вопросы