If the character encoding of the input is stateful, the iconv() function can also convert a sequence of input bytes to an update to the conversion state without producing any output bytes; such input is called a shift sequence.
Пытался понять, iconv отказывается есть всё только когда наезжает на шляпу или для неполных последовательностей тоже. Насколько я могу понять это “can also”, как хочет, так себя и ведёт.
Например, у меня есть папка /pr0n, и я хочу скопирвать на флешку, но владелец папки pr0n другой, у меня нет доступа к содержимому этой папки.
$ sudo cp -r /home/pr0n/* /mnt/sdh1
это, конечно, не работает, потому что звёздочка раскрывается раньше, чем выполняется sudo.
тут мог бы помочь rsync, там в зависимости от / в конце источника копируется либо сама папка, либо её содержимое. Но я никак не могу запомнить, какой вариант какой.
Залогинился root'ом, копирую.
Ядро 4.10.11. Как же всё тормозит при записи на флешку!
FILETIME. Также выяснилось, что и FILETIME в Windows, и time_t в POSIX могут быть как с високосными секундами, так и без. FILETIME, похоже, с високосными секундами не встречается, но тут пишут, что это не исключено. time_t согласно POSIX.1 тоже не должен поддерживать их:
Разобрался с конвертацией времени. Как выясняется, в GreyLink DC++ время хранится совсем не в том формате, в котором я подумал, а в IEEE Std 1003.1-1988 (``POSIX.1'') legislates that a time_t value of 536457599 shall correspond to "Wed Dec 31 23:59:59 GMT 1986." This effectively implies that POSIX time_t's cannot include leap seconds and, therefore, that the system time must be adjusted as each leap occurs.… но я смотрю на маны posix2time и time2posix и вижу, что совместимость с POSIX где-то может быть сломана в угоду монотонности времени. Всегда надо уточнять, с високосными секундами время или нет, иначе будет разъезжаться на 25 секунд, и с каждым годом всё больше. Вот, допустим, MySQL поддерживает високосные секунды в полях TIMESTAMP, если работать с этими значениями через функцию UNIX_TIMESTAMP. Но как мы уже выяснили, подлинный UNIX time_t не содержит високосных секунд, значит, это может быть только модифицированный. И если вы создаёте значение инструментом, который не вставляет эти секунды, у вас время начнёт разъезжаться. Вот в JavaScript по стандарту временная шкала нелинейная, как и в POSIX.1. Но если POSIX.1 где-то нарушается, то, может быть, и EcmaScript тоже? Давайте проверим:
Вопрос, есть ли какие-либо средства для автоматизации вызова функции конвертации треда в специальный после вызова pthread_create
Пичалька.
Меня огорчает, что я так и не нашёл ни одной реализации Interactive Connection Establishment для libuv
In love, some people bind while others connect.
Я пишу небольшой набор открытых и свободных coreutils (небольшой проект, не такой фичастый, как GNU coreutils) для POSIX-совместимых ОС. Проект называется escu(сокращение от Extremelly Small CoreUtils). Писать начал, когда пожелав выучиться системному программированию по исходникам GNU Coreutils, но не смог разобраться в spaghetti code и решил их переписать согласно спецификациям The OpenGroup.
Уже есть утилиты: basename, chroot, dirname, false, head, link, ln, logname, ls, mkfifo, mv, pwd, test, true, tty, uname, unlink, yes. Многие из них уже полностью POSIX-совместимы. Я использую системные вызовы для снижения накладных расходов, а также стараюсь писать максимально простой код для облегчения понимания новичками.
Проект нацелен на максимальную переносимость, поэтому при написании используются только возможности стандартной библиотеки языка C, а для сборки будут использоваться только POSIX-совместимые make, компилятор языка C и командная оболочка.
Релизы будут выпускаться тогда, когда они будут готовы, за исключением багфиксов.
Комментарии, предложения и патчи приветствуются!
Исходный код: github.com
$ expr a : 'a\( b\)*'
man 1p expr:
Alternatively, if the pattern contains at least one regular expression subexpression "[\(...\)]", the string corresponding to "\1" shall be returned.
По кодам возврата:
0 The expression evaluates to neither null nor zero.
1 The expression evaluates to null or zero.
Так что в GNU всё по POSIX, а OpenBSD — увы.
#1929039 POSIX make умеет как в качестве темплейт таргетов воспринимать только суффиксы и если есть значок ~ , префикс в начале файла s. . Уродство.
Господа, а можно как-то на POSIX make изобразить такую конструкцию: dir/%.o: cd dir && make %*.o Т.е. часть *.c файлов для собрки лежит в поддиректории и для того чтоб их сбилдить надо вызвать make foo.o в этой поддиректории. На GNU make я это изобразил, а вот на POSIX как-то херово :(
А что используют???
одно работает только под windows, другое только под unix, есть ешё hp-ux, под ним вообще ничего не работает.
Почему я не могу использовать chown, чтобы они стали моими?
Почему я должен использовать какой-то велосипед, сначала копируя эти файлы, потом удаляя исходные, потом перемещая скопированные на место исходных? Это обязательно должно быть так, да?
Неделю назад пришел баг-репорт, что gawk работает согласно POSIX! Ужас!
…я оказался прав: главный разработчик gawk Аарон Роббинс подготовил патч, возвращающий старое поведение. В ближайшее время он будет добавлен в ветку git gawk-4.0-stable.
GNUgNUGNugnu!!!!!1111
@lexszero обнаружил интересную вещь:
elemir@netbook ~ $ (cat test.c && gcc -std=c99 -D_POSIX_C_SOURCE=200809L -lm test.c -o test 2>&1) | wgetpaste
Your paste can be seen here: paste.pocoo.org
elemir@netbook ~ $ man 0p math.h | wgetpaste
Your paste can be seen here: paste.pocoo.org
И сколько же таких ошибок и несуразностей?
О совместимости. Многие линакс-фаги называют гну/линакс UNIX-like и обосновывают это тем, что оная является POSIX-совместимой, хоть и не сертифицирована. Благодаря вчерашнему нытью elemir@netbook ~ $ (cat test.c && gcc -std=c99 -D_POSIX_C_SOURCE=200809L -lm test.c -o test 2>&1) | wgetpaste
Your paste can be seen here: paste.pocoo.org
elemir@netbook ~ $ man 0p math.h | wgetpaste
Your paste can be seen here: paste.pocoo.org
И сколько же таких ошибок и несуразностей?
Был бы стандартом, например, bash со всеми его башизмами. Или другие расширения GNU… Было бы куда лучше.
kernel.org)
Измѣненiй немного: добавлена поддержка новаго разрѣшенiя CAP_SYSLOG (названiе говоритъ само за себя).
+ setcap теперь по дефолту имѣетъ inherity capability. Интересно, зачѣмъ? Въ Arch это отключено… вотъ тутъ нужно будетъ поразбираться.
sites.google.com
Ура! У меня новая libcap (теперь 2.20; тихо и незамѣтно вышла в день Богоявленiя, еще шесть дней назадъ; нашел на Измѣненiй немного: добавлена поддержка новаго разрѣшенiя CAP_SYSLOG (названiе говоритъ само за себя).
+ setcap теперь по дефолту имѣетъ inherity capability. Интересно, зачѣмъ? Въ Arch это отключено… вотъ тутъ нужно будетъ поразбираться.
sites.google.com
No more CPU time.
'Cause it's KILL DASH NINE,
And your process is mine.
I said KILL DASH NINE
'Cause it's my time to shine,
So don't step outta line or else it's
KILL DASH NINE!
ru.wikipedia.org Гы-Гы! Даже POSIX отвечает и X Window!
Ну нас есть, если верить вики, ОС2000 ~ % cat 1
#!/bin/bash
echo ${@-foo}
for i in "$@"; do
echo "bar"
done
~ % ./1
foo
~ % cat 2
#!/bin/sh
echo ${@-foo}
for i in "$@"; do
echo "bar"
done
~ % ./2
Почему баш корректно считает переменную аргумента неопределенной и не запускает луп, а так же выводит заместо неопределенной переменной заданное 'foo', а каноничный шелл делает непонятное — для первой команды он считает переменную определенной (но пустой) и выводит ее значение, но луп в то же время не запускает, как будто она не определена?