Byla vydána (𝕏) srpnová aktualizace aneb nová verze 1.104 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.104 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Spotify spustilo přehrávání v bezztrátové kvalitě. V předplatném Spotify Premium.
Spoluzakladatel a předseda správní rady americké softwarové společnosti Oracle Larry Ellison vystřídal spoluzakladatele automobilky Tesla a dalších firem Elona Muska na postu nejbohatšího člověka světa. Hodnota Ellisonova majetku díky dnešnímu prudkému posílení ceny akcií Oraclu odpoledne vykazovala nárůst o více než 100 miliard dolarů a dosáhla 393 miliard USD (zhruba 8,2 bilionu Kč). Hodnota Muskova majetku činila zhruba 385 miliard dolarů.
Bylo vydáno Eclipse IDE 2025-09 aneb Eclipse 4.37. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
T-Mobile od 15. září zpřístupňuje RCS (Rich Communication Services) zprávy i pro iPhone.
Společnost ARM představila platformu Arm Lumex s Arm C1 CPU Cluster a Arm Mali G1-Ultra GPU pro vlajkové chytré telefony a počítače nové generace.
Unicode Consortium, nezisková organizace koordinující rozvoj standardu Unicode, oznámila vydání Unicode 17.0. Přidáno bylo 4 803 nových znaků. Celkově jich je 159 801. Přibylo 7 nových Emoji.
Apple představil (YouTube) telefony iPhone 17 Pro a iPhone 17 Pro Max, iPhone 17 a iPhone Air, sluchátka AirPods Pro 3 a hodinky Watch Series 11, Watch SE 3 a Watch Ultra 3.
Realtimová strategie Warzone 2100 (Wikipedie) byla vydána ve verzi 4.6.0. Podrobný přehled novinek, změn a oprav v ChangeLogu na GitHubu. Nejnovější verzi Warzone 2100 lze již instalovat také ze Snapcraftu a Flathubu.
Polské vývojářské studio CD Projekt Red publikovalo na Printables.com 3D modely z počítačové hry Cyberpunk 2077.
Řešení dotazu:
#define NAZEV "out.txt"
int main()
{
FILE *soubor;
soubor = fopen(NAZEV, "a+");
int roura[2];
pipe(roura);
pid_t pid1;
int retcode;
pid1=fork();
if(pid1 == 0) // potomek1
{
close(roura[0]);
printf("Potomek1...\n");
dup2(roura[1], STDOUT_FILENO); // presmerovani výstupu do roury
int i = 0;
while(i < 6)
{
i++;
int a = 2 + i;
int b = 4 + i;
sleep(1);
printf("%d %d\n", a, b);
}
close(roura[1]);
exit(45);
} else if (pid1 < 0)
{
printf("Fork selhal\n");
exit(2);
} else
{
pid_t pid2;
pid2 = fork();
if (pid2 == 0) //potomek 2
{
close(roura[1]);
dup2(roura[0], STDIN_FILENO); //presmerovani výstup roury na svůj standardní vstup
printf("Potomek2...\n");
int i = 0;
while(i < 5)
{
i++;
int c;
int d;
scanf("%d %d", &c, &d);
printf("%d %d\n", c, d);
fprintf(soubor,"%d %d\n", c, d);
}
printf("Potomek2 skoncil\n");
exit(0);
} else if (pid2 < 0)
{
printf("Fork selhal\n");
exit(2);
}else
{ wait(&pid1); //ceka na potomka1
wait(&pid2); //ceka na potomka2
printf("Rodic konci\n");
exit(0);
}
}
exit(0);
}
sigaction
někam poznamená, že přišel signál. Ten proces bude v tu dobu nejspíš viset na sleep
, který příchozí signál přeruší s EINTR
, ale nemusí, takže je vhodné to otestovat i před tím sleep
em. Stačí se pak podívat, jestli byl poznamenán příchod signálu, a pokud ano, tak proces ukončit. Pokud nepotřebujete po přerušení uklidit, tak ukončit proces jde i ze sigaction
pomocí _exit()
.
Mimochodem pokud potřebujete zastavit zapisující proces ze čtecího, stačí ve čtecím procesu tu rouru zavřít. Zapisovací proces pak při pokusu o zápis dostane SIGPIPE
.
Tiskni
Sdílej: