Databáze DuckDB (Wikipedie) dospěla po 6 letech do verze 1.0.0.
Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.
Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.
Byla vydána nová verze 14.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
Společnost Kaspersky vydala svůj bezplatný Virus Removal Tool (KVRT) také pro Linux.
Grafický editor dokumentů LyX, založený na TeXu, byl vydán ve verzi 2.4.0 shrnující změny za šest let vývoje. Novinky zahrnují podporu Unicode jako výchozí, export do ePub či DocBook 5 a velké množství vylepšení uživatelského rozhraní a prvků editoru samotného (např. rovnic, tabulek, citací).
Byla vydána (𝕏) nová verze 7.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.
Organizace Apache Software Foundation (ASF) vydala verzi 22 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Společnost AMD na veletrhu Computex 2024 představila (YouTube) mimo jiné nové série procesorů pro desktopy AMD Ryzen 9000 a notebooky AMD Ryzen AI 300.
OpenCV (Open Source Computer Vision, Wikipedie), tj. open source multiplatformní knihovna pro zpracování obrazu a počítačové vidění, byla vydána ve verzi 4.10.0 . Přehled novinek v ChangeLogu. Vypíchnout lze Wayland backend pro Linux.
int rc; if (rc = pthread_attr_init(&attr) != 0) { fprintf(stderr, "ERROR: pthread_attr_init() failed! ret = %d, %s\n", rc, strerror(rc)); } if (stack_size > 0) { if (rc = pthread_attr_setstacksize(&attr, stack_size) != 0) { fprintf(stderr, "ERROR: pthread_attr_setstacksize() failed! ret = %d, %s\n", rc, strerror(rc)); } } scheduler_start(curl, &attr); if (rc = pthread_attr_destroy(&attr) != 0) { fprintf(stderr, "ERROR: pthread_attr_destroy() failed! ret = %d, %s\n", rc, strerror(rc)); }Přes mnoho pokusů se mi prostě nedaří a nevím, jak to správně zadeklarovat v mé funkci a předat.
void scheduler_init(CURL *ch, const pthread_attr_t *attr)Díky za pomoc.
Řešení dotazu:
#include <stdio.h> typedef struct { int vek; } osoba_t; void vypis_vek(osoba_t *osoba) { printf("Vek osoby: %d.\n", osoba->vek); } int main() { osoba_t osoba; osoba.vek=5; vypis_vek(&osoba); return 0; }
pthread.h:226:12: note: expected 'const union pthread_attr_t * __restrict__' but argument is of type 'const union pthread_attr_t **' extern int pthread_create (pthread_t *__restrict __newthread, ^ cc1: all warnings being treated as errors Makefile:134: recipe for target 'all' failed make[3]: *** [all] Error 1
#include <stdio.h> #include <pthread.h> #include <string.h> void scheduler_start(pthread_attr_t *attr) { } int main() { pthread_attr_t attr; int rc; int stack_size=50; if ((rc = pthread_attr_init(&attr)) != 0) { fprintf(stderr, "ERROR: pthread_attr_init() failed! ret = %d, %s\n", rc, strerror(rc)); } if (stack_size > 0) { if (rc = pthread_attr_setstacksize(&attr, stack_size) != 0) { fprintf(stderr, "ERROR: pthread_attr_setstacksize() failed! ret = %d, %s\n", rc, strerror(rc)); } } scheduler_start(&attr); if (rc = pthread_attr_destroy(&attr) != 0) { fprintf(stderr, "ERROR: pthread_attr_destroy() failed! ret = %d, %s\n", rc, strerror(rc)); } }
scheduler_start
předáváš attr
do pthread_create
zase jako &attr
. Tj. ukazatel na ten ukazatel, což je samozřejmě blbě.
Možná... pravděpodobně... na to aspoň vypadá ta chybová hláška. Tebe nenapadne, že by bylo dobré ukázat, co přesně děláš a na čem to řve, protože vůbec netušíš, co děláš. Tak si aspoň nevymýšlej nesmysly o tom, co bys taky napsal. Když nechápeš ukazatele, tak se o vlákna ani nepokoušej, protože to prostě nemužeš udělat správně. A protože tahle tvoje krávovina vlákna k ničemu nepotřebuje, tak je z toho konečně vyjeb.
Side note: rc
nebude obsahovat návratovou hovnotu z pthread_attr_init()
(jak mylně naznačuje chybová hláška použití strerror()
), nýbrž výsledek pohovnání návratové hovnoty s nulou, tedy vždy 0 nebo 1, páč 7 versus 14. V tomhle případě to sice nehraje (skoro) žádnou roli, ale pro pořádek by tam mělo být if ((rc = pthread_attr_init(&attr)) != 0) { ... }
.
Tiskni Sdílej: