Difference between revisions of "LU-LSP-b11:L01"
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== Praktiskais darbs == |
|||
Ievads sistēmprogrammēšanā un UNIX operētājsistēmā. |
|||
C programmu un shell-script savstarpēja sadarbība. |
|||
[[http://jupiter.cs.fmf.lu.lv/~kursi/lu-lsp-b11-01.pdf Lekcijas slaidi]] |
|||
== LKP PD1 == |
|||
Uzrakstīt sekojošas programmas: |
Uzrakstīt sekojošas programmas: |
||
Line 55: | Line 50: | ||
Viela pārdomām: |
Viela pārdomām: |
||
* Kā ir ar drošību? vai lietotājs nevar ievadīt potenciāli bīstamas simbolu virknes? |
* Kā ir ar drošību? vai lietotājs nevar ievadīt potenciāli bīstamas simbolu virknes? |
||
* Vai risinājums |
* Vai risinājums izdrukās visu tekstu vai tikai vienu vārdu? Kā to labot? |
Latest revision as of 10:37, 14 September 2011
Praktiskais darbs
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?