GNU/Linux >> Znalost Linux >  >> Linux

Beep na Linuxu v C

Nejzákladnější pípnutí je stále '\a' , pokud jej váš terminál podporuje:

fprintf(stdout, "\aBeep!\n" );

Podívejte se prosím na standardní linux beep zdrojový kód.http://www.johnath.com/beep/beep.c

K „pípnutí“ používá KIOCSOUND ioctl, ale ke hraní nepotřebujete oprávnění superuživatele. Nakonfiguroval jsem jej tak, aby byl čitelný a spustitelný pro uživatele ve skupině „pípnutí“.

Můj standardní uživatel s UID 1000 je tedy ve skupině s GID 501 (nazval jsem to „pípnutí“). Vedle toho jsem musel chmod 4750 /usr/bin/beep a nyní jsem schopen přehrávat pípnutí (v rozsahu 20-20000 Hz), aniž bych žádal o oprávnění superuživatele.


Myslím, že jediný způsob, jak to udělat, je buď použít suid k udělení kořenového přístupu mému vlastnímu programu, nebo použít beep , která již suid. Předpokládám, že přidám ještě jednu závislost, jako beep stejně není příliš velký.

Děkuji za všechny odpovědi, jsem si jistý, že jiné knihovny jsou skvělé pro složitější signály, ale já potřebuji velmi jednoduchou!

Myslím, že tato otázka může být označena jako vyřešená / uzavřená.

Pokud někdo najde způsob, jak vytvořit pípnutí pomocí konzole bez oprávnění superuživatele, stále mě toto řešení zajímá :)

Ještě jednou vám všem děkuji.


Linux
  1. Sbohem, Linux Journal

  2. MX Linux vs. Ubuntu

  3. Nelze otevřít složky v Linuxu nerdtree vim

  1. 4 alternativy cronu v Linuxu

  2. Co je uživatel Linuxu?

  3. Jak v Linuxu vypnu pípání v terminálu?

  1. Linux – Jak zakázat pípání systému pro neprivilegované uživatele?

  2. Linuxový příkaz mv

  3. Linux du command