#define SPRINTF(str, format, ...)\
char str[snprintf(0, 0, format, __VA_ARGS__)];\
sprintf(str, format, __VA_ARGS__);
#define SPRINTF(str, format, ...)\
char str[snprintf(0, 0, format, __VA_ARGS__)];\
sprintf(str, format, __VA_ARGS__);
интересная статья как в джаве вызвать незаоверрайженный метод родительского класса не из наследного класса: http://javachannel.org/posts/bypassing-subclass-method-overrides/
cd /root
truncate -s 1024M portage.loop
mke2fs -b 1024 -I 128 -N 200000 -m 0 -E resize=2048000 -O "^ext_attr" -v portage.loop
tune2fs -o "^acl,^user_xattr" portage.loop
rm -rf /usr/portage
echo -e '/root/portage.loop\t/usr/portage\text2\t\tloop=/dev/loop0,defaults,noatime,nodiratime,noacl,barrier=0\t\t0 1' >/etc/fstab
mkdir /usr/portage
mount /usr/portage
echo 'PORTAGE_RSYNC_EXTRA_OPTS="--exclude=metadata/md5-cache/*"' >/etc/portage/make.conf
emerge-webrsync
emerge --sync
портэж теперь занимает вместо 900 МБ целых 400 МБ. полгига экономии на двадцатигиговой впске
по мере фрагментации файловой системы, придётся возвращать sparse-состояние файла, делать можно примерно так:
dd if=/dev/zero of=/usr/portage/zeroes bs=1M
rm /usr/portage/zeroes
cp --sparse=always portage.loop portage.loop2
umount /usr/portage
mv portage.loop2 portage.loop
mount /usr/portage
На самом деле это не даёт гарантированного оптимального результата и проще пересоздать файл
заворкэраундил это ваше окружение ссылок скобками в маркдауне: https://github.com/hirthwork/home/commit/651117dd2d5e482c033c3448292df2d7905f6d16
В продолжение #XO4BOU я слегка поправил свои похапэкостыли, чтобы одни отдавали данные поточно. Теперь картинки грузятся ну натурально как по диалапу
<?php
function headerfunc($ch, $str){
header($str);
return strlen($str);
}
function writefunc($ch, $str){
print $str;
flush();
return strlen($str);
}
$url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$curlSession = curl_init();
curl_setopt($curlSession, CURLOPT_URL, $url);
curl_setopt($curlSession, CURLOPT_HEADER, false);
curl_setopt($curlSession, CURLOPT_PROXY, '10.100.0.1:4444');
curl_setopt($curlSession, CURLOPT_HEADERFUNCTION, 'headerfunc');
curl_setopt($curlSession, CURLOPT_WRITEFUNCTION, 'writefunc');
curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, false);
curl_setopt($curlSession, CURLOPT_TIMEOUT, 300);
curl_setopt($curlSession, CURLOPT_FOLLOWLOCATION, 1);
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$postinfo = '';
foreach($_POST as $key=>$value) {
$postinfo .= $key.'='.urlencode($value).'&';
}
rtrim($postinfo,'&');
curl_setopt ($curlSession, CURLOPT_POST, 1);
curl_setopt ($curlSession, CURLOPT_POSTFIELDS, $postinfo);
}
curl_exec ($curlSession);
if (curl_error($curlSession)){
print curl_error($curlSession);
}
curl_close ($curlSession);
?>
ssh root@example.com 'while read line < fifo; do echo $line;done'|sh -