Exiv2 - Bug #908 strerror_r gives no error message back
|
|
- Ronald Cross
- 5 years ago
- Views:
Transcription
1 Exiv2 - Bug #908 strerror_r gives no error message back 18 Jun :26 - Ákos Szőts Status: Closed Start date: 18 Jun 2013 Priority: Normal Due date: Assignee: Robin Mills % Done: 100% Category: api Estimated time: 2.00 hours Target version: 0.24 Description I tried to open a file which doesn't exist, but exiv2 doesn't gave a proper error message. Here is what I saw in the console: "/windows/users/[...]/img_1734.jpg: Failed to open the data source: (errno = 2) " As you can see, there's nothing before the "(errno=2)" string. I debugged a bit and I saw that the execution goes from futils.cpp:104 (strerror_r(error, buf, n);) to :106 (os << buf;), but the buf is full of zeroes all the time. System: opensuse 12.3, GCC 4.7.2, x64. Associated revisions Revision Jun :53 - Robin Mills Issue: #908. futils.cpp strerror() does not report correct error string. History #1-18 Jun :41 - Robin Mills - Status changed from New to Assigned - Assignee set to Robin Mills - Target version set to % Done changed from 0 to 50 - Estimated time set to 2.00 Can you help me to understand this issue, please? I'm not convinced that this is an Exiv2 issue - as it concerns the library function strerror_r. I've run the following little test on Kubuntu #include <error.h> #include <errno.h> #include <stdio.h> #include <string.h> int main(int argc,const char* argv[]) { const size_t n = 1024; char buf[n]; int e = 2; strerror_r(e,buf,n-1); printf("strerror_r e=%d,l=%lu,%s\n",e,strlen(buf),buf); strcpy(buf,strerror(e)); 25 Aug /5
2 printf("strerror_r e=%d,l=%lu,%s\n",e,strlen(buf),buf); return 0; } // unused argc; argv; And the output is: 842 rmills@rmills-ubuntu:~/temp $./foo strerror_r e=2,l=0, strerror_r e=2,l=25,no such file or directory In your linux example, the filename has been reported. I've done something similar on Windows (and Kubuntu) and again the error and the filename have been reported. I understand that you are expecting strerror_r to return a string, The man page says: DESCRIPTION `strerror_r' converts the error number ERRNUM into a string and copies the result into the supplied BUFFER for a length up to N, including the NUL terminator. The value of ERRNUM is usually a copy of `errno'. If `errnum' is not a known error number, the result is the empty string. I agree that it is strange that strerror_r returns an empty string when errno=2(enoent in./include/asm-generic/errno-base.h) and strerror reports in a reasonable manner. C:\Users\rmills\Downloads>exiv2..\Pictures\SummerTrip\RockyMountainNP\IMG_2167.jpg File name :..\Pictures\SummerTrip\RockyMountainNP\IMG_2167.jpg File size : Bytes MIME type : image/jpeg Image size : 3264 x 2448 Camera make : Canon Camera model : Canon PowerShot S5 IS Image timestamp : 2013:06:17 10:00:20 Image number : Exposure time : 1/500 s Aperture : F4 Exposure bias : 0 EV Flash : No, compulsory Flash bias : 0 EV Focal length : 9.7 mm Subject distance: 2358 ISO speed : 80 Exposure mode : Easy shooting (Auto) Metering mode : Multi-segment 25 Aug /5
3 Macro mode : Off Image quality : Superfine Exif Resolution : 3264 x 2448 White balance : Auto Thumbnail : image/jpeg, 5369 Bytes Copyright : Exif comment : C:\Users\rmills\Downloads>exiv2..\Pictures\SummerTrip\RockyMountainNP\IMG_2167.jpgxx..\Pictures\SummerTrip\RockyMountainNP\IMG_2167.jpgxx: Failed to open the file C:\Users\rmills\Downloads> #2-18 Jun :12 - Ákos Szőts For me the example runs great, producing the same output. The problem is with the API. Here is the strerror() implementation from futils.cpp: std::string strerror() { int error = errno; std::ostringstream os; #ifdef EXV_HAVE_STRERROR_R const size_t n = 1024; // _GNU_SOURCE: See Debian bug # # if defined EXV_STRERROR_R_CHAR_P && defined _GNU_SOURCE char *buf = 0; char buf2[n]; std::memset(buf2, 0x0, n); buf = strerror_r(error, buf2, n); # else char buf[n]; std::memset(buf, 0x0, n); strerror_r(error, buf, n); # endif os << buf; #else os << std::strerror(error); #endif os << " (errno = " << error << ")"; return os.str(); } // strerror On a "File not found" error the "errno" is 2 (in line 3). After that the execution goes to line 14, 15 and 16. When I was inside the strerror_r function I saw that the error number was converted somehow to the "File not found" string; but I didn't observe whether it was copied back to the buffer also. Then in line 18 the "buf" variable is full of zeroes again. If you try to run the following, do you get the error message? Exiv2::ImageFactory::open("wrong_path.jpg"); 25 Aug /5
4 For me it says: wrong_path.jpg: Failed to open the data source: (errno = 2) The right one would be: wrong_path.jpg: Failed to open the data source: No such file or directory (errno = 2) #3-18 Jun :59 - Robin Mills Thanks for clarifying this so quickly. It's easy to become confused here because: 1) my strerror_r appears to be behaving in an unexpected way (and different from you). 2) there's a maze involving EXV_HAVE_STRERROR_R EXV_STRERROR_R_CHAR_P and _GNU_SOURCE 3) I didn't write the code and haven't looked at this before today! Can you try adding a line following 106: os << buf; if (!buf 0 ) os << strerror(error); // report strerror() if strerror_r() returns empty If that doesn't fix it, can you add cout statements to determine which route you are taking through the maze! #4-18 Jun :00 - Robin Mills The formatting gods are angry: os << buf; if (!buf[0] ) os << strerror(error); // report strerror() if strerror_r() returns empty #5-18 Jun :20 - Ákos Szőts Without the patch: LD_LIBRARY_PATH=/home/aki/[...]/exiv2-0.23/src/.libs/./a.out wrong_path Caught Exiv2 exception 'wrong_path: Failed to open the data source: (errno = 2)' With the patch: LD_LIBRARY_PATH=/home/aki/[...]/exiv2-0.23/src/.libs/./a.out wrong_path Caught Exiv2 exception 'wrong_path: Failed to open the data source: No such file or directory (errno = 2)' 25 Aug /5
5 So, it works :) As far as I can tell "buf" is zero, but I don't know why. Just a wild hint, but maybe we use different versions of strerror_r. From its manual: The XSI-compliant version of strerror_r() is provided if: (_POSIX_C_SOURCE >= L _XOPEN_SOURCE >= 600) &&! _GNU_SOURCE Otherwise, the GNU-specific version is provided. #6-19 Jun :54 - Robin Mills - Status changed from Assigned to Resolved - % Done changed from 50 to 100 Ákos: You have the right idea here concerning the version of strerror_r. The maze is determined by./configure (and CMake) to compile the code that matches the version of strerror_r on the build machine. Anyway, I've submitted the fix: r3061 and marked this "resolved". If you discover anything about this, please update this issue report. This issue will eventually be "closed" when all issues are reviewed for the 0.24 release (expected about the end of 2013). #7-24 Jul :02 - Robin Mills - Status changed from Resolved to Closed Fixed in Aug /5
6
Exiv2 - Bug #1007 exiv Build error on blackfin arch
Exiv2 - Bug #1007 exiv2 0.24 Build error on blackfin arch 03 Dec 2014 14:02 - Nicolas Serafini Status: Closed Start date: 03 Dec 2014 Priority: Normal Due date: Assignee: Robin Mills % Done: 100% Category:
More informationTopic 8: I/O. Reading: Chapter 7 in Kernighan & Ritchie more details in Appendix B (optional) even more details in GNU C Library manual (optional)
Topic 8: I/O Reading: Chapter 7 in Kernighan & Ritchie more details in Appendix B (optional) even more details in GNU C Library manual (optional) No C language primitives for I/O; all done via function
More informationExiv2 - Patch #696 cmake: out of src compilation
Exiv2 - Patch #696 cmake: out of src compilation 14 Apr 2010 02:22 - Nikolai Saoukh Status: Closed Start date: 14 Apr 2010 Priority: Normal Due date: Assignee: % Done: 0% Category: build Estimated time:
More informationLecture 3. Introduction to Unix Systems Programming: Unix File I/O System Calls
Lecture 3 Introduction to Unix Systems Programming: Unix File I/O System Calls 1 Unix File I/O 2 Unix System Calls System calls are low level functions the operating system makes available to applications
More informationCSci 4061 Introduction to Operating Systems. Programs in C/Unix
CSci 4061 Introduction to Operating Systems Programs in C/Unix Today Basic C programming Follow on to recitation Structure of a C program A C program consists of a collection of C functions, structs, arrays,
More informationCOSC Software Engineering. Lecture 16: Managing Memory Managers
COSC345 2013 Software Engineering Lecture 16: Managing Memory Managers Outline Typical problems (from previous lectures) Memory leaks aren t just for (Objective) C Tracking malloc() calls Catching calls
More informationCSE 333 SECTION 3. POSIX I/O Functions
CSE 333 SECTION 3 POSIX I/O Functions Administrivia Questions (?) HW1 Due Tonight Exercise 7 due Monday (out later today) POSIX Portable Operating System Interface Family of standards specified by the
More informationde facto standard C library Contains a bunch of header files and APIs to do various tasks
CSE333 SECTION 6 GNU C Library de facto standard C library Contains a bunch of header files and APIs to do various tasks Don t need to memorize everything Do need to know what if there s an API that can
More informationIntermediate Programming, Spring 2017*
600.120 Intermediate Programming, Spring 2017* Misha Kazhdan *Much of the code in these examples is not commented because it would otherwise not fit on the slides. This is bad coding practice in general
More informationCS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco
CS 326 Operating Systems C Programming Greg Benson Department of Computer Science University of San Francisco Why C? Fast (good optimizing compilers) Not too high-level (Java, Python, Lisp) Not too low-level
More informationBasic C Programming. Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island
Basic C Programming Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island Announcements Exam 1 (20%): Feb. 27 (Tuesday) Tentative Proposal Deadline:
More informationHello, World! in C. Johann Myrkraverk Oskarsson October 23, The Quintessential Example Program 1. I Printing Text 2. II The Main Function 3
Hello, World! in C Johann Myrkraverk Oskarsson October 23, 2018 Contents 1 The Quintessential Example Program 1 I Printing Text 2 II The Main Function 3 III The Header Files 4 IV Compiling and Running
More informationGCC : From 2.95 to 3.2
GCC : From 2.95 to 3.2 Topics Simple changes name of standard include files, std::endl, iostream, throw statements, vector iterators More complicated changes string streams, parameterized macros, hash_map
More informationLecture 12 CSE July Today we ll cover the things that you still don t know that you need to know in order to do the assignment.
Lecture 12 CSE 110 20 July 1992 Today we ll cover the things that you still don t know that you need to know in order to do the assignment. 1 The NULL Pointer For each pointer type, there is one special
More informationLecture 03 Bits, Bytes and Data Types
Lecture 03 Bits, Bytes and Data Types Computer Languages A computer language is a language that is used to communicate with a machine. Like all languages, computer languages have syntax (form) and semantics
More informationSection 3: File I/O, JSON, Generics. Meghan Cowan
Section 3: File I/O, JSON, Generics Meghan Cowan POSIX Family of standards specified by the IEEE Maintains compatibility across variants of Unix-like OS Defines API and standards for basic I/O: file, terminal
More informationET: Legacy Development - Bug #123 Building Omnibot with ET: Legacy fails
ET: Legacy Development - Bug #123 Building Omnibot with ET: Legacy fails 16.11.2012 13:36 - lakersforce Status: Fixed % Done: 100% Priority: Normal Assignee: morsik Category: General Target version: 2.71rc1
More informationExiv2 - Support #1151 Small raw images size
Exiv2 - Support #1151 Small raw images size 10 Jan 2016 16:17 - Wil Hermes Status: Closed Start date: 10 Jan 2016 Priority: Normal Due date: Assignee: Robin Mills % Done: 100% Category: basicio Estimated
More informationOperating systems. Lecture 7
Operating systems. Lecture 7 Michał Goliński 2018-11-13 Introduction Recall Plan for today History of C/C++ Compiler on the command line Automating builds with make CPU protection rings system calls pointers
More informationCSE 333 SECTION 3. POSIX I/O Functions
CSE 333 SECTION 3 POSIX I/O Functions Administrivia Questions (?) HW1 Due Tonight HW2 Due Thursday, July 19 th Midterm on Monday, July 23 th 10:50-11:50 in TBD (And regular exercises in between) POSIX
More informationExercise Session 2 Systems Programming and Computer Architecture
Systems Group Department of Computer Science ETH Zürich Exercise Session 2 Systems Programming and Computer Architecture Herbstsemester 216 Agenda Linux vs. Windows Working with SVN Exercise 1: bitcount()
More informationCSE 410: Systems Programming
CSE 410: Systems Programming Input and Output Ethan Blanton Department of Computer Science and Engineering University at Buffalo I/O Kernel Services We have seen some text I/O using the C Standard Library.
More informationCompiler Theory. (GCC the GNU Compiler Collection) Sandro Spina 2009
Compiler Theory (GCC the GNU Compiler Collection) Sandro Spina 2009 GCC Probably the most used compiler. Not only a native compiler but it can also cross-compile any program, producing executables for
More informationCSE 303: Concepts and Tools for Software Development
CSE 303: Concepts and Tools for Software Development Hal Perkins Winter 2009 Lecture 7 Introduction to C: The C-Level of Abstraction CSE 303 Winter 2009, Lecture 7 1 Welcome to C Compared to Java, in rough
More informationHomework 4 Answers. Due Date: Monday, May 27, 2002, at 11:59PM Points: 100. /* * macros */ #define SZBUFFER 1024 /* max length of input buffer */
Homework 4 Answers Due Date: Monday, May 27, 2002, at 11:59PM Points: 100 UNIX System 1. (10 points) How do I delete the file i? Answer: Either rm./-i or rm -- -i will work. 2. (15 points) Please list
More informationRECOMMENDATION. Don't Write Entire Programs Unless You Want To Spend 3-10 Times As Long Doing Labs! Write 1 Function - Test That Function!
1 2 RECOMMENDATION Don't Write Entire Programs Unless You Want To Spend 3-10 Times As Long Doing Labs! Write 1 Function - Test That Function! 2 Function Overloading C++ provides the capability of Using
More informationProgram Translation. text. text. binary. binary. C program (p1.c) Compiler (gcc -S) Asm code (p1.s) Assembler (gcc or as) Object code (p1.
Program Translation Compilation & Linking 1 text C program (p1.c) Compiler (gcc -S) text Asm code (p1.s) binary binary Assembler (gcc or as) Object code (p1.o) Linker (gcc or ld) Executable program (p1)
More informationCSE 333 Midterm Exam 2/12/16. Name UW ID#
Name UW ID# There are 6 questions worth a total of 100 points. Please budget your time so you get to all of the questions. Keep your answers brief and to the point. The exam is closed book, closed notes,
More informationFigure 1 Common Sub Expression Optimization Example
General Code Optimization Techniques Wesley Myers wesley.y.myers@gmail.com Introduction General Code Optimization Techniques Normally, programmers do not always think of hand optimizing code. Most programmers
More informationCSC209H Lecture 3. Dan Zingaro. January 21, 2015
CSC209H Lecture 3 Dan Zingaro January 21, 2015 Streams (King 22.1) Stream: source of input or destination for output We access a stream through a file pointer (FILE *) Three streams are available without
More informationGetting Familiar with CCN
Getting Familiar with CCN 1 Project Goal In this project you will experiment with simple client/server programs in CCN to familiarize yourselves with the CCN basics. You will compile, run, and answer the
More informationLaboratory Assignment #3. Extending scull, a char pseudo-device
Laboratory Assignment #3 Extending scull, a char pseudo-device Value: (See the Grading section of the Syllabus.) Due Date and Time: (See the Course Calendar.) Summary: This is your first exercise that
More informationLearning to Program with Haiku
Learning to Program with Haiku Lesson 21 Written by DarkWyrm All material 2010 DarkWyrm All of the projects that we have been working on have been small ones which didn't take very much time. Depending
More informationExceptions. CS162: Introduction to Computer Science II. Exceptions. Exceptions. Exceptions. Exceptions. Exceptions
CS162: Introduction to Computer Science II A typical way to handle error conditions is through the return value. For example, suppose we create a loadfile() function that returns true if it loaded the
More informationSo far, system calls have had easy syntax. Integer, character string, and structure arguments.
Pointers Page 1 So far, system calls have had easy syntax Wednesday, September 30, 2015 10:45 AM Integer, character string, and structure arguments. But this is not always true. Today, we begin to explore
More informationAssignment 6: The Power of Caches
Assignment 6: The Power of Caches Due by: April 20, 2018 before 10:00 pm Collaboration: Individuals or Registered Pairs (see Piazza). It is mandatory for every student to register on Piazza. Grading: Packaging
More informationELEC 377 C Programming Tutorial. ELEC Operating Systems
ELE 377 Programming Tutorial Outline! Short Introduction! History & Memory Model of! ommon Errors I have seen over the years! Work through a linked list example on the board! - uses everything I talk about
More informationHave examined process Creating program Have developed program Written in C Source code
Preprocessing, Compiling, Assembling, and Linking Introduction In this lesson will examine Architecture of C program Introduce C preprocessor and preprocessor directives How to use preprocessor s directives
More informationKernels & Processes The Structure of the Operating System
COMP 111: Operating Systems (Fall 2013) Kernels & Processes The Structure of the Operating System Noah Mendelsohn Tufts University Email: noah@cs.tufts.edu Web: http://www.cs.tufts.edu/~noah Based on a
More informationNow. I know the meaning of each one, but how do you have multiples of all those running at the same time?
Need Help running multiple miners. Posted by xcorps - 2011/01/25 20:17 Someone help me understand all of this... I'm a little confused with the terms.. accounts, characters, clients, and bots. Now. I know
More informationCSE 333 Lecture 16 - network programming intro
CSE 333 Lecture 16 - network programming intro Hal Perkins Department of Computer Science & Engineering University of Washington Today Network programming - dive into the Berkeley / POSIX sockets API -
More informationMemory Corruption 101 From Primitives to Exploit
Memory Corruption 101 From Primitives to Exploit Created by Nick Walker @ MWR Infosecurity / @tel0seh What is it? A result of Undefined Behaviour Undefined Behaviour A result of executing computer code
More informationThe Stack, Free Store, and Global Namespace
Pointers This tutorial is my attempt at clarifying pointers for anyone still confused about them. Pointers are notoriously hard to grasp, so I thought I'd take a shot at explaining them. The more information
More informationPRINCIPLES OF OPERATING SYSTEMS
PRINCIPLES OF OPERATING SYSTEMS Tutorial-1&2: C Review CPSC 457, Spring 2015 May 20-21, 2015 Department of Computer Science, University of Calgary Connecting to your VM Open a terminal (in your linux machine)
More informationSending s With Sendmail - Part 2
CODECALL Programming Tutorials Linux Tutorials, Guides and Tips Sending Emails With Sendmail - Part 2 Started by, Aug 31 2009 04:55 PM form, Posted 31 August 2009-04:55 PM Ok, so now that you know how
More informationCS240: Programming in C. Lecture 14: Errors
CS240: Programming in C Lecture 14: Errors Errors We ve already seen a number of instances where unexpected (and uncaught) errors can take place: Memory buffer overflow/underflow unintended casts misuse
More informationCptS 360 (System Programming) Unit 2: Introduction to UNIX and Linux
CptS 360 (System Programming) Unit 2: Introduction to UNIX and Linux Bob Lewis School of Engineering and Applied Sciences Washington State University Spring, 2018 Motivation APIs have a history: Learn
More informationWhen you add a number to a pointer, that number is added, but first it is multiplied by the sizeof the type the pointer points to.
Refresher When you add a number to a pointer, that number is added, but first it is multiplied by the sizeof the type the pointer points to. i.e. char *ptr1 = malloc(1); ptr1 + 1; // adds 1 to pointer
More informationMidterm Exam Nov 8th, COMS W3157 Advanced Programming Columbia University Fall Instructor: Jae Woo Lee.
Midterm Exam Nov 8th, 2012 COMS W3157 Advanced Programming Columbia University Fall 2012 Instructor: Jae Woo Lee About this exam: - There are 4 problems totaling 100 points: problem 1: 30 points problem
More informationAPT Session 4: C. Software Development Team Laurence Tratt. 1 / 14
APT Session 4: C Laurence Tratt Software Development Team 2017-11-10 1 / 14 http://soft-dev.org/ What to expect from this session 1 C. 2 / 14 http://soft-dev.org/ Prerequisites 1 Install either GCC or
More informationModifiers. int foo(int x) { static int y=0; /* value of y is saved */ y = x + y + 7; /* across invocations of foo */ return y; }
Modifiers unsigned. For example unsigned int would have a range of [0..2 32 1] on a 32-bit int machine. const Constant or read-only. Same as final in Java. static Similar to static in Java but not the
More informationTHE C STANDARD LIBRARY & MAKING YOUR OWN LIBRARY. ISA 563: Fundamentals of Systems Programming
THE C STANDARD LIBRARY & MAKING YOUR OWN LIBRARY ISA 563: Fundamentals of Systems Programming Announcements Homework 2 posted Homework 1 due in two weeks Typo on HW1 (definition of Fib. Sequence incorrect)
More informationCS354 gdb Tutorial Written by Chris Feilbach
CS354 gdb Tutorial Written by Chris Feilbach Purpose This tutorial aims to show you the basics of using gdb to debug C programs. gdb is the GNU debugger, and is provided on systems that
More informationAssignment operator string class c++ Assignment operator string class c++.zip
Assignment operator string class c++ Assignment operator string class c++.zip Outside class definitions; Addition assignment: a += b: The binding of operators in C and C++ is specified (character string)
More informationCSE 374 Programming Concepts & Tools
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2017 Lecture 8 C: Miscellanea Control, Declarations, Preprocessor, printf/scanf 1 The story so far The low-level execution model of a process (one
More informationChapter 11 Introduction to Programming in C
C: A High-Level Language Chapter 11 Introduction to Programming in C Original slides from Gregory Byrd, North Carolina State University Modified slides by Chris Wilcox, Colorado State University Gives
More informationPrinceton University. Testing. Computer Science 217: Introduction to Programming Systems
Princeton University Computer Science 217: Introduction to Programming Systems Testing On two occasions I have been asked [by members of Parliament!], Pray, Mr. Babbage, if you put into the machine wrong
More informationTopic 6: A Quick Intro To C
Topic 6: A Quick Intro To C Assumption: All of you know Java. Much of C syntax is the same. Also: Many of you have used C or C++. Goal for this topic: you can write & run a simple C program basic functions
More informationFile I/O. Preprocessor Macros
Computer Programming File I/O. Preprocessor Macros Marius Minea marius@cs.upt.ro 4 December 2017 Files and streams A file is a data resource on persistent storage (e.g. disk). File contents are typically
More informationSupporting Class / C++ Lecture Notes
Goal Supporting Class / C++ Lecture Notes You started with an understanding of how to write Java programs. This course is about explaining the path from Java to executing programs. We proceeded in a mostly
More informationCSCI-243 Exam 2 Review February 22, 2015 Presented by the RIT Computer Science Community
CSCI-43 Exam Review February, 01 Presented by the RIT Computer Science Community http://csc.cs.rit.edu C Preprocessor 1. Consider the following program: 1 # include 3 # ifdef WINDOWS 4 # include
More informationImportant Dates. October 27 th Homework 2 Due. October 29 th Midterm
CSE333 SECTION 5 Important Dates October 27 th Homework 2 Due October 29 th Midterm String API vs. Byte API Recall: Strings are character arrays terminated by \0 The String API (functions that start with
More informationThis is an open book, open notes exam. But no online or in-class chatting.
Principles of Operating Systems Fall 2017 Final 12/13/2017 Time Limit: 8:00am - 10:00am Name (Print): Don t forget to write your name on this exam. This is an open book, open notes exam. But no online
More informationCSE 333 Autumn 2013 Midterm
CSE 333 Autumn 2013 Midterm Please do not read beyond this cover page until told to start. A question involving what could be either C or C++ is about C, unless it explicitly states that it is about C++.
More informationInterrupts, Fork, I/O Basics
Interrupts, Fork, I/O Basics 12 November 2017 Lecture 4 Slides adapted from John Kubiatowicz (UC Berkeley) 12 Nov 2017 SE 317: Operating Systems 1 Topics for Today Interrupts Native control of Process
More informationjust a ((somewhat) safer) dialect.
Intro_to_C Page 1 Intro to C Tuesday, September 07, 2004 5:30 PM C was developed specifically for writing operating systems Low level of abstraction. "Just above machine language." Direct access to the
More informationChapter 11 Introduction to Programming in C
Chapter 11 Introduction to Programming in C C: A High-Level Language Gives symbolic names to values don t need to know which register or memory location Provides abstraction of underlying hardware operations
More informationTDDB68. Lesson 1. Simon Ståhlberg
TDDB68 Lesson 1 Simon Ståhlberg Contents General information about the labs Overview of the labs Memory layout of C programs ("Lab 00") General information about Pintos System calls Lab 1 Debugging Administration
More informationRule 1-3: Use white space to break a function into paragraphs. Rule 1-5: Avoid very long statements. Use multiple shorter statements instead.
Chapter 9: Rules Chapter 1:Style and Program Organization Rule 1-1: Organize programs for readability, just as you would expect an author to organize a book. Rule 1-2: Divide each module up into a public
More informationSoftware Development With Emacs: The Edit-Compile-Debug Cycle
Software Development With Emacs: The Edit-Compile-Debug Cycle Luis Fernandes Department of Electrical and Computer Engineering Ryerson Polytechnic University August 8, 2017 The Emacs editor permits the
More informationCS16 Midterm Exam 2 E02, 10W, Phill Conrad, UC Santa Barbara Tuesday, 03/02/2010
CS16 Midterm Exam 2 E02, 10W, Phill Conrad, UC Santa Barbara Tuesday, 03/02/2010 Name: Umail Address: @ umail.ucsb.edu Circle Lab section: 3PM 4PM 5PM Link to Printer Friendly PDF Version Please write
More informationQGIS Application - Bug report #17043 Browser keeps scanning directory with gpkg file
QGIS Application - Bug report #17043 Browser keeps scanning directory with gpkg file 2017-08-21 12:50 PM - Richard Duivenvoorde Status: Closed Priority: High Assignee: Alessandro Pasotti Category: Browser
More informationIntroduction to N1031. Components of N1031. Guiding Principles. Walk through, issues, and rationale
Introduction to N1031 Walk through, issues, and rationale Components of N1031 New functions that protect against buffer overflow and always produce null terminated strings New reentrant versions of old
More informationC Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006
C Compilation Model Comp-206 : Introduction to Software Systems Lecture 9 Alexandre Denault Computer Science McGill University Fall 2006 Midterm Date: Thursday, October 19th, 2006 Time: from 16h00 to 17h30
More informationCS 322 Operating Systems Programming Assignment 4 Writing a memory manager Due: November 16, 11:30 PM
CS 322 Operating Systems Programming Assignment 4 Writing a memory manager Due: November 16, 11:30 PM Goals To understand the nuances of building a memory allocator. To create a shared library. Background
More informationDeep C. Multifile projects Getting it running Data types Typecasting Memory management Pointers. CS-343 Operating Systems
Deep C Multifile projects Getting it running Data types Typecasting Memory management Pointers Fabián E. Bustamante, Fall 2004 Multifile Projects Give your project a structure Modularized design Reuse
More informationSlide Set 5. for ENCM 339 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary
Slide Set 5 for ENCM 339 Fall 2016 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary October 2016 ENCM 339 Fall 2016 Slide Set 5 slide 2/32
More informationTutorial - Using existing plugins in GCC
Tutorial - Using existing plugins in GCC Table of contents 1 Tutorial - Using existing plugins in GCC... 2 2 Setup... 2 3 Logging... 3 4 Setting the plugin path... 3 5 Choosing which plugins to load...4
More informationThe following program computes a Calculus value, the "trapezoidal approximation of
Multicore machines and shared memory Multicore CPUs have more than one core processor that can execute instructions at the same time. The cores share main memory. In the next few activities, we will learn
More informationG52CPP C++ Programming Lecture 6. Dr Jason Atkin
G52CPP C++ Programming Lecture 6 Dr Jason Atkin 1 Last lecture The Stack Lifetime of local variables Global variables Static local variables const (briefly) 2 Visibility is different from lifetime Just
More informationPrograms. Function main. C Refresher. CSCI 4061 Introduction to Operating Systems
Programs CSCI 4061 Introduction to Operating Systems C Program Structure Libraries and header files Compiling and building programs Executing and debugging Instructor: Abhishek Chandra Assume familiarity
More informationFinal CSE 131B Spring 2004
Login name Signature Name Student ID Final CSE 131B Spring 2004 Page 1 Page 2 Page 3 Page 4 Page 5 Page 6 Page 7 Page 8 (25 points) (24 points) (32 points) (24 points) (28 points) (26 points) (22 points)
More informationRecitation 8: Tshlab + VM
Recitation 8: Tshlab + VM Instructor: TAs 1 Outline Labs Signals IO Virtual Memory 2 TshLab and MallocLab TshLab due Tuesday MallocLab is released immediately after Start early Do the checkpoint first,
More informationCode Blocks Cannot Find Compiler Executable Windows 7
Code Blocks Cannot Find Compiler Executable Windows 7 Windows. Once you've installed a new compiler, be sure to read the I couldn't find a way to force CB to use a unix-link shell, but was able to find
More informationRDBE Host Software. Doc No: X3C 2009_07_21_1 TODO: Add appropriate document number. XCube Communication 1(13)
RDBE Host Software Doc No: X3C 2009_07_21_1 TODO: Add appropriate document number XCube Communication 1(13) Document history Change date Changed by Version Notes 09-07-21 09:12 Mikael Taveniku PA1 New
More informationCS 322 Operating Systems Programming Assignment 4 Writing a memory manager Due: April 5, 11:30 PM
CS 322 Operating Systems Programming Assignment 4 Writing a memory manager Due: April 5, 11:30 PM Goals To understand the nuances of building a memory allocator. To create a shared library. Background
More informationChapter 11 Introduction to Programming in C
Chapter 11 Introduction to Programming in C C: A High-Level Language Gives symbolic names to values don t need to know which register or memory location Provides abstraction of underlying hardware operations
More informationChapter 11 Introduction to Programming in C
C: A High-Level Language Chapter 11 Introduction to Programming in C Original slides from Gregory Byrd, North Carolina State University Modified slides by Chris Wilcox, Colorado State University! Gives
More informationLesson 3 Transcript: Part 2 of 2 Tools & Scripting
Lesson 3 Transcript: Part 2 of 2 Tools & Scripting Slide 1: Cover Welcome to lesson 3 of the DB2 on Campus Lecture Series. Today we are going to talk about tools and scripting. And this is part 2 of 2
More informationEXTERNAL TESTING. Princeton University Computer Science 217: Introduction to Programming Systems. Why Test? Testing. Why Test? Why Test?
Princeton University Computer Science 217: Introduction to Programming Systems Testing Why Test? It's hard to know if a (large) program works properly Ideally: Automatically prove that a program is correct
More informationC Review. MaxMSP Developers Workshop Summer 2009 CNMAT
C Review MaxMSP Developers Workshop Summer 2009 CNMAT C Syntax Program control (loops, branches): Function calls Math: +, -, *, /, ++, -- Variables, types, structures, assignment Pointers and memory (***
More informationCSE 333 Final Exam June 6, 2017 Sample Solution
Question 1. (24 points) Some C and POSIX I/O programming. Given an int file descriptor returned by open(), write a C function ReadFile that reads the entire file designated by that file descriptor and
More informationComputer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring Topic Notes: C and Unix Overview
Computer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring 2009 Topic Notes: C and Unix Overview This course is about computer organization, but since most of our programming is
More informationUNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Summer 2016 Programming Assignment 1 Introduction The purpose of this
UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Summer 2016 Programming Assignment 1 Introduction The purpose of this programming assignment is to give you some experience
More informationLab 1: First Steps in C++ - Eclipse
Lab 1: First Steps in C++ - Eclipse Step Zero: Select workspace 1. Upon launching eclipse, we are ask to chose a workspace: 2. We select a new workspace directory (e.g., C:\Courses ): 3. We accept the
More informationOPERATING SYSTEMS, ASSIGNMENT 4 FILE SYSTEM
OPERATING SYSTEMS, ASSIGNMENT 4 FILE SYSTEM SUBMISSION DATE: 15/06/2014 23:59 In this assignment you are requested to extend the file system of xv6. xv6 implements a Unix-like file system, and when running
More informationProgrammazione. Prof. Marco Bertini
Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Hello world : a review Some differences between C and C++ Let s review some differences between C and C++ looking
More informationIntroduction to Programming in C Department of Computer Science and Engineering. Lecture No. #54. Organizing Code in multiple files
Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #54 Organizing Code in multiple files (Refer Slide Time: 00:09) In this lecture, let us look at one particular
More information0x0d2C May your signals all trap May your references be bounded All memory aligned Floats to ints round. remember...
Types Page 1 "ode to C" Monday, September 18, 2006 4:09 PM 0x0d2C ------ May your signals all trap May your references be bounded All memory aligned Floats to ints round remember... Non -zero is true ++
More informationCCPS 305: Quick guide to C programming for Java folks
CCPS 305: Quick guide to C programming for Java folks (version of March 30, 2014) For the purposes of the course CCPS 305 Data Structures, this document explains the main ideas of how C and especially
More information