LU-LSP-b11:L01
Ievads sistēmprogrammēšanā un UNIX operētājsistēmā. C programmu un shell skriptu savstarpēja sadarbība.
LKP PD1
Uzrakstīt sekojošas programmas:
- (C valodā) Ielasa lietotāja tekstu un padod zemāk.
- (shell script) Saņem padoto tekstu, izdrukā datumu un padod tekstu nakamajai programmai
- (C valodā) izdrukā saņemto tekstu
1. un 3. drīkst apvienot!
Noformēt uzdevumu kā:
- myprint{1,3}.c - C izejas koda faili
- myprint{1,3} - izpildāmais fails (sakompilēts no C koda)
- script - bash skripta fails
- Makefile - testēšanas makefile, ar mērķiem:
- all - kompilēt C kodu
- clean - nodzēst izpildāmo(s) failu(s)
- test - notestēt visu
PD klasē, piemēra iespējamais risinājums. 1. un 3. programmu apvienojums
#include <stdio.h> int main (int argc, char *argv[]) { char str[255]; if( argc>1 ) { puts(argv[1]); } else { scanf("%s", str); puts(str); } return 0; }
Shell skripts:
#!/bin/sh while read LINE; do date ./myprint ${LINE} done
Programmu izsaukums: ./myprint | ./script
Viela pārdomām:
- Kā ir ar drošību? vai lietotājs nevar ievadīt potenciāli bīstamas simbolu virknes?
- Vai risinājums izdrukās visu tekstu vai tikai vienu vārdu? Kā to labot?