What: /sys/power/autosleep
Date: April 2012
Contact: Rafael J. Wysocki <rjw@rjwysocki.net>
Description:
The /sys/power/autosleep file can be written one of the strings
returned by reads from /sys/power/state. If that happens, a
work item attempting to trigger a transition of the system to
the sleep state represented by that string is queued up. This
attempt will only succeed if there are no active wakeup sources
in the system at that time. After every execution, regardless
of whether or not the attempt to put the system to sleep has
succeeded, the work item requeues itself until user space
writes "off" to /sys/power/autosleep.
в файле /sys/power/autosleep -стоит "off", файл не редактируется
Почему ожидание завершения потока называется join?
так сделано во всех языках программирования
cpp файлtemplate <typename T> Tree<T>::Tree() { }
Tree<int>
в каком-то другом файле?Если переношу реализацию конструктора и деструктора в заголовок - все работает.
unresolved external symbol "public: __thiscall tinyxml2::XMLDocument::XMLDocument(bool,enum tinyxml2::Whitespace)" referenced in function "public: __thiscall Primes::Primes(void)"
как это исправить
Как поймать нажатие CTRL+ALT+DEL?
secure attention sequence
. Его обрабатывает winlogon или загруженная в него GINA. Читать начиная отсюда.Есть какие-нибудь варианты?
void get_disks(char * allDisks[]) { char buf[128]; ... for (char *s = buf; *s; s += strlen(s) + 1) { ... allDisks[i] = s; ... allDisks[7] = "ABC"; allDisks[8] = "DEF"; } }
После прохождения массива функцией get_files список дисков исчезает, но "ABC" и "DEF" остаются.
Подскажите, почему так происходит, куда теряются первые строки и как исправить?
allDisks
указатели на стековый массив buf
, который разрушается после выхода из функции get_disks
. А строчки "ABC" и "DEF" -- константные строчки, существуют всё время выполнения программы.allDisks
:void get_disks(char * allDisks[])
{
char buf[128];
int i = 0;
GetLogicalDriveStringsA(sizeof(buf), buf);
for (char *s = buf; *s; s += strlen(s) + 1)
{
if (GetDriveTypeA(s) == 2 || GetDriveTypeA(s) == 3)
{
allDisks[i] = strdup(s);
++i;
allDisks[7] = "ABC";
allDisks[8] = "DEF";
}
}
}
Например, есть массив 1,2,3,4,5,6
Нужно чтобы прочитал варианты: 1,2; 1,3; ... ; 1,6 потом 1,2,3; 1,2,4; 1,2,5, потом 1,3,4; 1,3,6 и т.д.
p.s. варианты перестановки учитывать не нужно, т.е. 1,2,3 == 1,3,2 == 3,1,2
как эту операцию обозвать можно.
почему я неправильно ссылаюсь к указателю в структуре?zmienna_strukt.a=NULL; ... scanf("%s", wsk->a);
struct morgan zmienna_strukt;
struct morgan *wsk;
unsigned char buf[100];
wsk=&zmienna_strukt;
printf("Впиши значение: ");
fflush(stdout);
scanf("%d", &zmienna_strukt.b);
printf("%d \n\n", zmienna_strukt.b);
zmienna_strukt.a=buf;
buf[0] = 0;
printf("%s \n\n", zmienna_strukt.a);
printf("Впиши значение: ");
fflush(stdout);
scanf("%s", wsk->a);
printf("%s \n\n", wsk->a);
Как я понял, ядра имеют доступ только к своему L1 кэшу, а если поток будет исполняться на другом ядре, то он не увидит свои объекты, которые находятся в кэше другого ядра
Я правильно мыслю?
Вот примеры, не понимаю логики
Сколько сокетов соединений может быть на одном порту
теперь нужно выводить текст "Ожидание изображения', но как?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
static int cmp_min(const void *a, const void *b)
{
int va = *(const char *)a;
int vb = *(const char *)b;
return va - vb;
}
static int minimize(int v)
{
char str[sizeof(int) * 3 + 1];
int i;
sprintf(str, "%d", v);
qsort(str, strlen(str), 1, cmp_min);
if (str[0] == '0') {
for (i = 0; str[i]; ++i) {
if (str[i] != '0') {
str[0] = str[i];
str[i] = '0';
break;
}
}
}
sscanf(str, "%i", &v);
return v;
}
static int cmp_max(const void *a, const void *b)
{
int va = *(const char *)a;
int vb = *(const char *)b;
return vb - va;
}
static int maximize(int v)
{
char str[sizeof(int) * 3 + 1];
sprintf(str, "%d", v);
qsort(str, strlen(str), 1, cmp_max);
sscanf(str, "%i", &v);
return v;
}
int main()
{
int a, b;
int result_a, result_b;
scanf("%i %i", &a, &b);
result_a = a < 0 ? -minimize(-a) : maximize(a);
result_b = b < 0 ? -maximize(-b) : minimize(b);
printf("%d\n", result_a - result_b);
return 0;
}