import javax.swing.*;
public class Test {
public static void main(String[] args) {
int ms = 5000;
JFrame okno = new JFrame("Ura budilka");
JLabel jl = new JLabel("Zbudi se cez "+ ms +" ms");
JPanel jp = new JPanel();
jp.add(jl);
okno.add(jp);
okno.setVisible(true);
okno.setSize(300,300);
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
new Alarm(jl, jp, ms).start();
}
}
import javax.swing.*;
public class Alarm extends Thread{
JLabel napis;
JPanel jp;
JLabel jl = new JLabel("TEST");
int milsec = 0;
Alarm(JLabel jl, JPanel j, int ms){
napis = jl;
jp = j;
milsec = ms;
}
public void run() {
try {
sleep(milsec);
napis.setText("Zbudi se zdaj!!");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
V C-ju napišite preprost program DIREXE,
ki izpiše vse datoteke v trenutnem direktoriju,
katere lahko uporabnik zažene. Pri tem ne smete
uporabljati klicev,
ki poganjajo sistemske ukaze (kot so system(...)
ali execX(...)).
#include<dirent .h>
#include<sys /stat.h>
int main() {
DIR *dir; //struktura ki ponazarja directory
struct dirent *file; //struktura file-a, ima vec podatkov file-a
struct stat results; //struktura ukaza stat, vec podatkov
dir = opendir(".");
while(file = readdir(dir)) { //ko ni vec file-ov vrne NULL
stat(file->d_name, &results); //zapomnimo si podatke file-a v results(struktura stat)
printf("\tres:%d, \n\tS_xisur:%d \n",results.st_mode,S_IXUSR);
if(results.st_mode & S_IXUSR) { //preverimo ce je executable
printf("%s\n", file->d_name ); //izpisemo
}
}
closedir(dir);
}
V C-ju napišite program, ki vsakih 5 sekund izpiše vse procese, ki tečejo na sistemu. V programu ne smete uporabljati funkcij system(...) in popen(...).
#include <stdio .h>
#include <unistd .h>
#include <sys /types.h>
int main(int argc, char *argv[])
{
int pid;
while (1==1)
{
pid = fork();
if (pid == -1)
{
printf("\nNapaka pri zagonu novega procesa!");
}
if (pid == 0)
{
execlp("ps", argv[0], "-e", 0);
}
else{
waitpid (pid, NULL, 0);
}
sleep(5);
}
return 0;
}
Napišite program v lupini, ki vsakih pet minut preveri,
če se na sistemu pojavi nek proces in ga poskusa ubiti.
Ime procesa podamo v ukazni vrstici.
Primer uporabe:
$ ubij netscape
bo na računalniku vsakih pet minut preveril,
če teče kak proces z imenom netscape, ter ga bo poskušal ubiti. Navodilo: pri tem obvezno uporabite ukaz kill.
#!/bin/sh
#############################
# SPO zagovori vaj #
# Naloga 2 #
# Avtor: Karlos #
# Datum: 10-Nov-07 #
#############################
# uporaba: ./ubij.sh imeProcesa #
if [ $# -lt 1 ]
then
echo Napaka, manjka ime procesa
exit
elif [ $# -eq 1 ]
then
proces=$1
while(true)
do
pid=`ps -e | grep $1 | gawk '// {print $1}'`
#pid=`pidof $1`
kill $pid 2> /dev/null
sleep 10
done
else
echo Napaka!
echo $*
fi
Napišite program v lupini, ki beleži dnevnik dosegljivosti računalnikov.
Kot argument mu podamo datoteko, ki vsebuje spisek računalnikov,
program pa naj vsakih pet minut preveri, če so dosegljivi.
V neko datoteko (dnevnik) naj zapisuje, če kateri od računalnikov ni dosegljiv,
njegovo ime in čas, ko ni bil dosegljiv.
Primer uporabe:
$ preverjaj spisek_racunalnikov.txt
izpisuje v dnevnik:
io.fri.uni-lj.si ni dosegljiv ob 15:31
io.fri.uni-lj.si ni dosegljiv ob 15:36
io.fri.uni-lj.si ni dosegljiv ob 15:41
verbena.fe.uni-lj.si ni dosegljiv ob 15:41
#!/bin/sh
#############################
# SPO zagovori vaj #
# Naloga 5 #
# Avtor: Karlos #
# Datum: 5-Dec-07 #
#############################
# Uporaba: ./naloga5 datotekaRacunalnikov.txt #
if test $# -ne 1
then
echo "Uporaba: ./naloga5 datotekaRacunalnikov.txt"
exit
fi
while true
do
for i in `cat $1`
do
if(ping -c 1 $i 1> /dev/null)
then
echo -n ""
#echo $i" je dosegljiv ob " `date +%H:%M`
#echo $i" je dosegljiv ob " `date +%H:%M` >> dosegljivost.txt
else
echo $i" je nedosegljiv ob " `date +%H:%M`
echo $i" je nedosegljiv ob " `date +%H:%M` >> dosegljivost.txt
fi
done
echo '###########################################'
sleep 5
done
Preučite jezik za pregledovanje tekstnih datotek awk (oz. gawk - GNU awk)
ter v njem napišite program, ki za vhod vzame neko HTML datoteko ter na standardni
izhod izpiše seznam vseh povezav in slik, ki so vključene v datoteko
(z <a HREF...> ali <img SRC .../>).
Primer uporabe:
$ gawk -f preveri.awk lalala.html
slika lala.gif
povezava http://www.fri.uni-lj.si
povezava http://www.ijs.si/slo
slika slike/kuku.jpg </a>
#############################
# SPO zagovori vaj #
# Naloga 7 #
# Avtor: Karlos #
# Datum: 10-Nov-07 #
#############################
# uporaba: gawk -f preveri.awk index.html #
#awk <search pattern> {<program actions>}#
/(src)|(href)/{ #najde vrstice
for(i = 1; i < = NF; i++) # NF = number of fields
if($i ~ "[\"|'][^\"|']*[\"|']"){ # if field contains src || href
split($i,tabela,"'")
if(tabela[2] != "")
print tabela[2]
split($i,tabela,"\"")
if(tabela[2] != "")
print tabela[2]
#print $i
}
}
Malo testiram Scribe fire
In malo popravljam