Расшарить каталог по сети
В винде делаю каталог общим - он виден в ES File explorer для андроид.
Как добиться такого-же эффекта для линуксовой машины с thunar & xU14.04?
В винде делаю каталог общим - он виден в ES File explorer для андроид.
Как добиться такого-же эффекта для линуксовой машины с thunar & xU14.04?
crlf If this is TRUE, then carriage returns will be
sent as <CR><LF>. If this is FALSE, then car‐
riage returns will be send as <CR><NUL>. The
initial value for this toggle is FALSE.
alex@alex-VirtualBox:~$ telnet 192.168.1.79 5000
Trying 192.168.1.79...
Connected to 192.168.1.79.
Escape character is '^]'.
($NAM+CALL?)
^]
telnet> quit
Connection closed.
→ New connection. There are 1 connections now
SRV <<] CLN:28 24 4E 41 4D 2B 43 41 4C 4C 3F 29 0D 0A
← Lost connection. There are 0 connections now
alex@alex-VirtualBox:~$ uname -a
Linux alex-VirtualBox 4.2.0-27-generic #32~14.04.1-Ubuntu SMP Fri Jan 22 15:32:27 UTC 2016 i686 i686 i686 GNU/Linux
Надо сделать источник равномерного матового света (как монитор со снятой матрицей, только форматом побольше).
Есть идеи только о матовом пластике + шахматами светодиоды, но думаю что они все равно сделают неравномерность как бы я не матовил пластик.
Есть еще варианты? Вариант найти б/у\убитый монитор с диагональю в 15" и расковырять не подходит - облазил радиорынок и сервисные - такого у них не обитается.
Допусловия: питание хочу от кроны (одной, максимум двух) или телефонного аккумулятора, если есть какая-то возможность заряжать его штатной зарядкой без телефона. (аккум думаю брать от старых нокий, т.е. 3.7 в, 850 мА
Если трюк через юнион - UB/ID, то какой же способ будет абсолютно переносимым если нам известен входящий порядок и исходящий?
Есть дерево (без циклов). Выглядит примерно так: https://s32.postimg.org/mb44h9anp/before.png . Мне нужно раскидать элементы по сетке (можно считать бесконечной), располагая детей под родителями (нечетное кол-во - сразу под, четное - с пропуском по середине). Т.е. хочу сделать вот так: https://s32.postimg.org/8eew8nx5x/after.png .
Подскажите, пожалуйста, алгоритм действий.
#include <string.h>
int main(void)
{
return strlen("123");
}
-O0
main:
pushq %rbp
movq %rsp, %rbp
movl $3, %eax
popq %rbp
ret
-O3
main:
movl $3, %eax
ret
#include <string.h>
int main(void)
{
char ar[] = {"123"};
return strlen(ar);
}
-O0
main:
pushq %rbp
movq %rsp, %rbp
subq $16, %rsp
movq %fs:40, %rax
movq %rax, -8(%rbp)
xorl %eax, %eax
movl $3355185, -16(%rbp)
leaq -16(%rbp), %rax
movq %rax, %rdi
call strlen
movq -8(%rbp), %rdx
xorq %fs:40, %rdx
je .L3
call __stack_chk_fail
.L3:
leave
ret
-O3
main:
subq $24, %rsp
movq %fs:40, %rax
movq %rax, 8(%rsp)
xorl %eax, %eax
movl $3355185, (%rsp)
movq %rsp, %rsi
movq %rsp, %rax
.L2:
movl (%rax), %ecx
addq $4, %rax
leal -16843009(%rcx), %edx
notl %ecx
andl %ecx, %edx
andl $-2139062144, %edx
je .L2
movl %edx, %ecx
shrl $16, %ecx
testl $32896, %edx
cmove %ecx, %edx
leaq 2(%rax), %rcx
cmove %rcx, %rax
addb %dl, %dl
sbbq $3, %rax
subq %rsi, %rax
movq 8(%rsp), %rdi
xorq %fs:40, %rdi
jne .L9
addq $24, %rsp
ret
.L9:
call __stack_chk_fail
Понятно что в случае 2 на -О3 он догадался заинлайнить функцию. Но почему, видя, что массив нигде не используется он не сделал movl 3 как в случае 1?
Более того, стоит поменять количество символов на 2 - код сокращается на треть.
Хочу поиграться с мутируемым кодом. Как безопасно запустить исполняемый файл чтобы у него не было доступно ничего кроме stdout? Очень важна скорост запуска/подготовки чтобы можно было запускать их тысячами в секунду.
Как вы поступаете в ситуациях когда нужно дернуть много функций, а они могут возвращать код ошибки после которого нужно что-то почистить?
Как живой пример:
Было: http://pastebin.com/BuUqYSRZ
Стало: http://pastebin.com/yHzMpv6C
Может вы используете какой-то другой метод?
int funca(int * a)
{
*a += 1;
}
int main(void)
{
int b = 5;
funca(&b);
funca(&b);
return b;
}
Вот положим компилятор взял и заинлайнил funca.
А мы, положим, определим функцию в другом юните. Или даже так:
//file1.c
int funca(int * a)
{
*a += 1;
}
int funcb(int * a)
{
funca(a);
funca(a);
}
А теперь вопрос:
gcc file1.c -o file1.o
Если затайпдефчен тип с указателем - то креатор упорно подставляет точку вместо стрелки в автозаполнении:
typedef struct _xmlNs xmlNs;
typedef xmlNs *xmlNsPtr;
struct _xmlNs {
struct _xmlNs *next; /* next Ns link for this node */
xmlNsType type; /* global or local */
const xmlChar *href; /* URL for the namespace */
const xmlChar *prefix; /* prefix for the namespace */
void *_private; /* application data */
struct _xmlDoc *context; /* normally an xmlDoc */
};
...
static CML_Error ReadNamespaces(CML_Node * root, xmlNsPtr ns, char marker)
{
while (ns)
{
ns = ns.next; // <-- Здесь должна быть стрелка
}
}
Зачем так тайпдефить вопрос к создателям libxml2. У них же и node->children->parent != node.
Версия 3.0.1, предполагаю наличие бага и в более поздних.
typedef struct DNode
{
...
struct DNode ** nodes;
uint32_t ncount;
...
} DNode;
void DNodeRemove(DNode * node, uint32_t index)
{
if (index != (node->ncount - 1))
{
memmove(&node->nodes[index],
&node->nodes[index + 1],
(node->ncount - index - 1) * sizeof(DNode *));
}
node->ncount--;
}
Сдвигает сразу на 4 элемента Ломает память вообще непонятно по какому алгоритму:
[ 8.100][ RATATOSKR + 04] >>>
{
305 => '<status> <id>305<>Playback Audio Buffer Level<>0<>INT<>0<<>',
304 => '<status> <id>304<>Playback Video Buffer Level<>72<>INT<>0<<>',
307 => '<status> <id>307<>Playback Load Stage<>4<>INT<>0<<>',
306 => '<status> <id>306<>Playback Load State<>0<>INT<>0<<>',
309 => '<status> <id>309<>Playback Audio Delay<>0<>INT<>0<<>',
308 => '<status> <id>308<>Playback Loop Mode<>false<>BOOL<>0<<>',
310 => '<status> <id>310<>Audio Mode<>0<>INT<>0<<>',
313 => '<status> <id>313<>Playback Current CPL ID<>urn:uuid:2e1c65ee-9f12-41d9-8ad7-abd67e121f30<>STRING<>0<<>',
314 => '<status> <id>314<>Playback Current CPL Offset<>3541<>LONG<>0<<>',
317 => '<status> <id>317<>Current Playback ID<>urn:uuid:7a9ab3bd-4341-6bea-b59d-a43e035a31cf<>STRING<>0<<>',
319 => '<status> <id>319<>3D Delay Enabled<>false<>BOOL<>0<<>',
322 => '<status> <id>322<>Dolby Atmos Playback Online Status<>false<>BOOL<>0<<>',
320 => '<status> <id>320<>3D Delay Time<>0<>INT<>0<<>',
332 => '<status> <id>332<>Playback Not Married<>false<>BOOL<>0<<>',
452 => '<status> <id>452<>Scheduler Next Start Time<><>STRING<>0<<>',
330 => '<status> <id>330<>Playback Buffer Underrun Error<>false<>BOOL<>0<<>',
300 => '<status> <id>300<>Playback State<>2<>INT<>0<<>',
451 => '<status> <id>451<>Scheduler Next Content ID<><>STRING<>0<<>',
331 => '<status> <id>331<>Playback ICP Communication Error<>false<>BOOL<>0<<>',
301 => '<status> <id>301<>Loaded Content<>urn:uuid:2e1c65ee-9f12-41d9-8ad7-abd67e121f30<>STRING<>0<<>',
450 => '<status> <id>450<>Scheduler Active<>true<>BOOL<>0<<>',
302 => '<status> <id>302<>Playback Timecode<>3541<>LONG<>0<<>',
303 => '<status> <id>303<>Loaded Content Duration<>30000<>LONG<>0<<>',
},
[ 9.372][ RATATOSKR + 04] ---
{
309 => '<status> <id>309<>Playback Audio Delay<>0<>INT<>0<<>',
308 => '<status> <id>308<>Playback Loop Mode<>false<>BOOL<>0<<>',
310 => '<status> <id>310<>Audio Mode<>0<>INT<>0<<>',
313 => '<status> <id>313<>Playback Current CPL ID<>urn:uuid:2e1c65ee-9f12-41d9-8ad7-abd67e121f30<>STRING<>0<<>',
314 => '<status> <id>314<>Playback Current CPL Offset<>3541<>LONG<>0<<>',
308 => '<status> <id>308<>Playback Loop Mode<>false<>BOOL<>0<<>',
310 => '<status> <id>310<>Audio Mode<>0<>INT<>0<<>',
313 => '<status> <id>313<>Playback Current CPL ID<>urn:uuid:2e1c65ee-9f12-41d9-8ad7-abd67e121f30<>STRING<>0<<>',
314 => '<status> <id>314<>Playback Current CPL Offset<>3541<>LONG<>0<<>',
317 => '<status> <id>317<>Current Playback ID<>urn:uuid:7a9ab3bd-4341-6bea-b59d-a43e035a31cf<>STRING<>0<<>',
319 => '<status> <id>319<>3D Delay Enabled<>false<>BOOL<>0<<>',
322 => '<status> <id>322<>Dolby Atmos Playback Online Status<>false<>BOOL<>0<<>',
320 => '<status> <id>320<>3D Delay Time<>0<>INT<>0<<>',
332 => '<status> <id>332<>Playback Not Married<>false<>BOOL<>0<<>',
452 => '<status> <id>452<>Scheduler Next Start Time<><>STRING<>0<<>',
330 => '<status> <id>330<>Playback Buffer Underrun Error<>false<>BOOL<>0<<>',
300 => '<status> <id>300<>Playback State<>2<>INT<>0<<>',
451 => '<status> <id>451<>Scheduler Next Content ID<><>STRING<>0<<>',
331 => '<status> <id>331<>Playback ICP Communication Error<>false<>BOOL<>0<<>',
301 => '<status> <id>301<>Loaded Content<>urn:uuid:2e1c65ee-9f12-41d9-8ad7-abd67e121f30<>STRING<>0<<>',
450 => '<status> <id>450<>Scheduler Active<>true<>BOOL<>0<<>',
302 => '<status> <id>302<>Playback Timecode<>3541<>LONG<>0<<>',
},
[ 10.164][ RATATOSKR + 04] <<<
По сути мне нужно все запросы до 192.168.1.80 переадресовывать на 127.0.0.1.
Попробовал так:
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A PREROUTING -p tcp -d 192.168.1.80 -j DNAT --to-destination 127.0.0.1
Все равно пинги до 192.168.1.80 100% потерь.
Нужно чтобы программа ломилась не на реальное устройство, а на эмулятор.
ЧЯДНТ?
Все доступные инструкции предлагают скармливать только -o параметр. Делаю:
alex@alex-VirtualBox:~/Проекты/test/python$ python h2xml.py /home/alex/Проекты/test/python/libratatoskr.h -o /home/alex/Проекты/test/python/libratatoskr.xml
creating xml output file ...
running: gccxml /tmp/tmpekNIpZ.cpp -fxml=/home/alex/Проекты/test/python/libratatoskr.xml
alex@alex-VirtualBox:~/Проекты/test/python$ python xml2py.py ./libratatoskr.xml -o libratatoskr.py
Типы создались, константы создались. Вместо прототипов функций строковый массив
__all__ = ['R_COMMAND_UNKNOWN_COMMAND', 'R_ERROR_TIMEOUT', 'RBool',
'RIPAddress', 'R_ERROR_BADIMPLEMENT', 'RStorageUnion' <...>
Где argtypes/restype?
Написал код перевода разных типов для проекта.
Как можно его сократить/упростить так, чтобы не было UB (типа сдвига знаковых)
Спасибо
typedef struct
{
char * name;
int value;
} TPair;
TPair * createpair()
{
TPair result;
result.name = malloc(5);
strcpy(result.name, "name");
result.value = 0;
return &result;
}
Под влиянием этого топика написал свой:
#include <stdio.h> // printf
void main(void)
{ int
J , E , I , F , B , D , G , C , A ;
G = E = C = D = B = J = A = I = F = A != A;
F |= C == D;
F <<= F =+ F; G += G |= F;
G <<= G |= G; G += G =+ G; G |= F << F;
F <<= F << F; F += F || F;
F += F || F; F += F || F; F <<= C == D;
F |= F || F; F += F || F;
C += B == A; E += C << E; E += E =+ E;
E += E =+ E; D += D =+ C;
D += D =+ D; D <<= D =+ D; D |= D >> E;
D += D << E; D <<= E |= E;
A += D += E; B += A += C; B += F |= F;
B >>= C |= C; B <<= C |= C;
E += E =+ E; I += E |= E; I += I =+ I;
I += I || I; I += I || I;
I += I =+ I; I += I || I; J += G |= G;
J -= I |= I; D >>= D >> D;
D >>= D >> D; D += I |= I; D += E |= E;
D -= C |= C; F >>= F >> F;
F >>= E || C; F -= D >> C; F += F =+ F;
F -= E >> C; F -= E || E;
F -= C |= C; char H[] =
{ G - J , G - I , G - J , G - I , G
- J , G - I , G - J , G - I , D , F };
printf(H, A >> E, A, B >> E, B);
}
Есть желающие поковыряться?
Есть ли в природе консольный клиент для vk? Если нет, то позволяет ли апи вк написать его на си?
Вижу, что раз этак 65 000+ вызывается сам майн. Как сам текст дешифруется?
#include <stdio.h>
int main(int t,int _,char*a)
{return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
main(-86, 0, a+1 )+a)):1,t<_?main(t+1, _, a ):3,main ( -94, -27+t, a
)&&t == 2 ?_<13 ?main ( 2, _+1, "%s %d %d\n" ):9:16:t<0?t<-72?main(_,
t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+\
,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/\
+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){n\
l]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\
n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \
;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\
#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
:t<-50?_==*a ?putchar(a[31]):main(-65,_,a+1):main((*a == '/')+t,_,a\
+1 ):0<t?main ( 2, 2 , "%s"):*a=='/'||main(0,main(-61,*a, "!ek;dc \
i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}
← предыдущие |