mirror of
https://gitlab.cs.fau.de/ik15ydit/latexandmore.git
synced 2024-11-22 03:49:31 +01:00
Progammieraufgabe: Rückgabewert, sinnvolle Parameter, keine Variablendefinitionen verlangen
Es soll der Wahlfreie Zugriff auf einen Satz implementiert werden → Rückgabewert ist Pointer auf Byte-Array (char *) Ein Satz liegt in einem Segment (aka Blockdatei) → Name des Segments asl Parameter Eine TID ist ein 2-Tupel aus Blocknummer und Index in diesen Block Verbesserungsvorschläge erwünscht, vielleicht hab ich auch was falsch verstanden. (e.g soll der Student `index = tid.index` selbst einfügen? Was soll das Parameter `uint32 index` bedeuten?)
This commit is contained in:
parent
e836fbf807
commit
1ae182095e
@ -115,10 +115,11 @@ Dies ist eine studentische, prüfungsschwierigkeit immitierende Aufgabenzusammen
|
||||
\subsection*{a)}
|
||||
Aus der Vorlesung sind die Funktionen der Pufferschnittstelle bekannt. Ergaenzen sie den folgenden Programmablauf mit ensprechenden Funktionsaufrufen aus dieser Scchnittstelle.
|
||||
Fehlerbehandlung sowie Behandlung von fragmentierten Saetzen ist nicht notwendig.
|
||||
\texttt{struct tid} hat die Felder \texttt{block_no} und \texttt{index}.
|
||||
|
||||
|
||||
\begin{lstlisting}[language=c,tabsize=4]
|
||||
static void read(char* tid, uint_32 index){
|
||||
static char *read(char* segment_identifier, struct tid tid) {
|
||||
|
||||
|
||||
char* page_in_main_memory :=
|
||||
@ -127,7 +128,7 @@ static void read(char* tid, uint_32 index){
|
||||
if (indirection(page_in_main_memory, tid.index)){
|
||||
|
||||
|
||||
char* tid_indirected = getIndirection(page_in_main_memory, index);
|
||||
char* tid_indirected = getIndirection(page_in_main_memory, tid.index);
|
||||
|
||||
|
||||
page_in_main_memory =
|
||||
@ -139,10 +140,10 @@ static void read(char* tid, uint_32 index){
|
||||
}
|
||||
|
||||
|
||||
char* final := special_memcpy(page_in_main_memory, index);
|
||||
char* final := special_memcpy(page_in_main_memory, tid.index);
|
||||
|
||||
|
||||
return satz;
|
||||
return final;
|
||||
}
|
||||
\end{lstlisting}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user