Weston, referenční implementace kompozitoru pro Wayland, byl vydán ve verzi 15.0.0. Přehled novinek v příspěvku na blogu společnosti Collabora. Vypíchnout lze Lua shell umožňující psát správu oken v jazyce Lua.
Organizace Apache Software Foundation (ASF) vydala verzi 29 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.
Ústavní soud na svých webových stránkách i v databázi NALUS (NÁLezy a USnesení Ústavního soudu) představil novou verzi chatbota využívajícího umělou inteligenci. Jeho posláním je usnadnit veřejnosti orientaci v rozsáhlé judikatuře Ústavního soudu a pomoci jí s vyhledáváním informací i na webových stránkách soudu, a to i v jiných jazycích. Jde o první nasazení umělé inteligence v rámci webových stránek a databází judikatury českých soudů.
Byla vydána nová verze 10.1 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnuta je podpora NanoPi Zero2 a balíček WhoDB.
Konference Otvorený softvér vo vzdelávaní, výskume a v IT riešeniach OSSConf 2026 proběhne od 1. do 3. července 2026 na Žilinské univerzita v Žilině: "Cieľom našej konferencie je poskytnúť priestor pre informovanie o novinkách vo vývoji otvoreného softvéru a otvorených technológií, o možnostiach využitia týchto nástrojov vo vede a vzdelávaní a taktiež poskytnúť priestor pre neformálne priateľské stretnutie užívateľov a priaznivcov
… více »Korespondenční seminář z programování (KSP) pražského Matfyzu pořádá i letos jarní soustředění pro začátečníky. Zváni jsou všichni středoškoláci a starší základoškoláci, kteří se chtějí naučit programovat, lépe uvažovat o informatických úlohách a poznat nové podobně smýšlející kamarády. Úplným začátečníkům bude určen kurz základů programování a kurz základních algoritmických dovedností, pokročilejším nabídneme různorodé
… více »Fedora je od 10. února dostupná v Sýrii. Sýrie vypadla ze seznamu embargovaných zemí a Fedora Infrastructure Team mohl odblokovat syrské IP adresy.
Ministerstvo zahraničí Spojených států amerických vyvíjí online portál Freedom.gov, který umožní nejenom uživatelům v Evropě přístup k obsahu blokovanému jejich vládami. Portál bude patrně obsahovat VPN funkci maskující uživatelský provoz tak, aby se jevil jako pocházející z USA. Projekt měl být původně představen již na letošní Mnichovské bezpečnostní konferenci, ale jeho spuštění bylo odloženo.
Byla vydána pro lidi zdarma ke stažení kniha The Book of Remind věnovaná sofistikovanému kalendáři a připomínači Remind.
Grafický editor dokumentů LyX, založený na TeXu, byl vydán ve verzi 2.5.0. Oznámení připomíná 30. výročí vzniku projektu. Novinky zahrnují mj. vylepšení referencí nebo použití barev napříč aplikací, od rozhraní editoru po výstupní dokument.
/proc/self/exe ukazuje na aktuální binárku...
#include <limits.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
/* Finds the path containing the currently running program executable.
The path is placed into BUFFER, which is of length LEN. Returns
the number of characters in the path, or -1 on error. */
size_t get_executable_path (char* buffer, size_t len)
{
char* path_end;
/* Read the target of /proc/self/exe. */
if (readlink ("/proc/self/exe", buffer, len) <= 0)
return -1;
/* Find the last occurrence of a forward slash, the path separator. */
path_end = strrchr (buffer, '/');
if (path_end == NULL)
return -1;
/* Advance to the character past the last slash. */
++path_end;
/* Obtain the directory containing the program by truncating the
path after the last slash. */
*path_end = '\0';
/* The length of the path is the number of characters up through the
last slash. */
return (size_t) (path_end - buffer);
}
int main ()
{
char path[PATH_MAX];
get_executable_path (path, sizeof (path));
printf ("this program is in the directory %s\n", path);
return 0;
}
strrchr na bufferu hned po readlink? Mě se to nezdá:
readlink() does not append a null byte to buf.
int main(int argc, char* argv[])
{
printf("%s\n", argv[0])
return 0;
}
#include <libgen.h>
int main(int argc, char* argv[])
{
printf("%s\n", dirname(argv[0]))
return 0;
}
argv[0] mi připadá mnohem portabilnější než /proc (který třeba nemusí být ani na všech Linuxových instalacích, o jiných unix-like OS či win/dos ani nemluvě).
#include <stdio.h>
int main(int argc,char** argv)
{
int i;
for(i=0;i<argc;i++)
printf("ARG %d: %s\n", i, argv[i]);
return 0;
}
lubos@ares ~ $ ./test ARG 0: ./testTomu říkáte absolutní cesta?
Nicméně i tak by to šlo řešit -- absolutní cesta z relativní + příp. dereference linku.
P.S.: Ty dva posty jsem napsal hned po sobě a další komentáře jsme četl až potom, takže podrobnější vysvětlení jsem fakt nepotřeboval.
$0 na funkční cestu k němu.
/proc/self/exe.
Navíc je potřeba mít na paměti, že na otázku "ve kterém adresáři se nachází tento soubor" nemusí být jednoznačná odpověď nebo dokonce může odpověď znít "v žádném"…
PATH, jen jménem, bude v argv[0] jen to jméno.
Tiskni
Sdílej: