Difference between revisions of "LU-LSP-b11:L01"

From DiLab
Jump to: navigation, search
 
(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 izdrukas visu tekstu vai tikai vienu vārdu? Kā to labot?
* Vai risinājums izdrukās visu tekstu vai tikai vienu vārdu? Kā to labot?

Latest revision as of 11:37, 14 September 2011

Praktiskais darbs

Uzrakstīt sekojošas programmas:

  1. (C valodā) Ielasa lietotāja tekstu un padod zemāk.
  2. (shell script) Saņem padoto tekstu, izdrukā datumu un padod tekstu nakamajai programmai
  3. (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?