q2K BHP
Black History Portal
THE BHP WIRE —
HIDDEN TRUTHS
What's New!
THE JOURNEY THROUGH TIME

Explore Black History

Explore the people, places, events, achievements, struggles and stories that shaped our journey.

✊🏾

Civil Rights

Movements, leaders, victories and the continuing fight for equality.

⚙️

Black Inventors

Innovation, patents, science, technology and world-changing contributions.

🏆

Sports

Pioneers, champions, Negro Leagues, records, activism and excellence.

♟️

People

Meet the people whose lives, choices and achievements shaped the journey.

📍

Places

Black towns, communities, institutions and places where history happened.

📜

Events

Moments that changed communities, movements, institutions and the nation.

Enter a person, place, event, or topic.
MY'STORY

The MOVE Fire

This is a personal recollection on the Move fire on May 13, 1985 Philadelphia police fired thousands of rounds at the MOVE house, city officials approved dropping an explosive device on the roof, the resulting fire was allowed to burn, 11 people—including five children—died, and 61 homes were destroyed. Philadelphia City Council later called it a “brutal attack carried out by the City of Philadelphia on its own citizens” and acknowledged that no individual faced criminal consequences for the bombing. One timeline correction worth preserving for the BHP record: the major previous MOVE-police confrontation was August 8, 1978, about seven years before the bombing, not a year or two earlier. Officer James Ramp was killed, other police and firefighters were wounded, nine MOVE members were later convicted, and television cameras recorded police beating Delbert Africa during his arrest. The 1985 MOVE Commission later specifically criticized city planners for failing to adequately use lessons from that 1978 confrontation. And that actually strengthens the point you’re making: 1985 did not happen without precedent or institutional memory. There had already been a deadly confrontation with MOVE, years of conflict, negotiations and police involvement before Osage Avenue.

MORE →
BLACK FACTS
The Truths They Never Taught You...

Wilmington 1898 — An American Coup

Wilmington, North Carolina once had a thriving Black middle class and an elected interracial government. In 1898 white supremacists used violence to overthrow that government, kill Black residents and drive many others from the city.

MORE →
BHP gathered finds from its connected research sources. Showing the 4 strongest Black History matches.
← BACK TO RESULTS
Wikipedia

open (system call)

In Unix-like operating systems, a program initializes access to a file in a file system using the open system call. This allocates resources associated to the file (the file descriptor), and returns a handle that the process will use to refer to that file. In some cases, the open is performed by the first access.

The same file may be opened simultaneously by several processes, and even by the same process, resulting in several file descriptors for the same file; depending on the file organization and filesystem. Operations on the descriptors such as moving the file pointer or closing it are independent—they do not affect other descriptors for the same file. Operations on the file, such as a write, can be seen by operations on the other descriptors: a later read can read the newly written data.

During the open, the filesystem may allocate memory for buffers, or it may wait until the first operation.

The absolute file path is resolved. This may include connecting to a remote host and notifying an operator that a removable medium is required. It may include the initialization of a communication device. At this point an error may be returned if the host or medium is not available. The first access to at least the directory within the filesystem is performed. An error will usually be returned if the higher level components of the path (directories) cannot be located or accessed. An error will be returned if the file is expected to exist and it does not or if the file should not already exist and it does.

If the file is expected to exist and it does, the file access, as restricted by permission flags within the file meta data or access control list, is validated against the requested type of operations. This usually requires an additional filesystem access although in some filesystems meta-flags may be part of the directory structure.

If the file is being created, the filesystem may allocate the default initial amount of storage or a specified amount depending on the file system capabilities. If this fails an error will be returned. Updating the directory with the new entry may be performed or it may be delayed until the close is performed.

Various other errors which may occur during the open include directory update failures, un-permitted multiple connections, media failures, communication link failures and device failures.

The return value must always be examined and an error specific action taken.

In many cases programming language-specific run-time library opens may perform additional actions including initializing a run-time library structure related to the file.

As soon as a file is no longer needed, the program should close it. This will cause run-time library and filesystem buffers to be updated to the physical media and permit other processes to access the data if exclusive use had been required. Some run-time libraries may close a file if the program calls the run-time exit. Some filesystems may perform the necessary operations if the program terminates. Neither of these is likely to take place in the event of a kernel or power failure. This can cause damaged filesystem structures requiring the running of privileged and lengthy filesystem utilities during which the entire filesystem may be inaccessible.

open call arguments

[edit]
  1. The pathname to the file,
  2. The kind of access requested on the file (read, write, append etc.),
  3. The initial file permission is requested using the third argument called mode. This argument is relevant only when a new file is being created.

After using the file, the process should close the file using close call, which takes the file descriptor of the file to be closed. Some filesystems include a disposition to permit releasing the file.

Some computer languages include run-time libraries which include additional functionality for particular filesystems. The open (or some auxiliary routine) may include specifications for key size, record size, connection speed. Some open routines include specification of the program code to be executed in the event of an error.

C library POSIX definition

[edit]

The open call is standardized by the POSIX specification for the C language:

int open(const char* path, int oflag, /* mode_t mode */...);
int openat(int fd, const char* path, int oflag, /* mode_t mode */...);
int creat(const char* path, mode_t mode);
FILE* fopen(const char* restrict filename, const char* restrict mode);

The value returned is a file descriptor which is a reference to a process specific structure which contains, among other things, a position pointer that indicates which place in the file will be acted upon by the next operation.

Open may return −1 indicating a failure with errno detailing the error.

The file system also updates a global table of all open files which is used for determining if a file is currently in use by any process.

path

[edit]

The name of the file to open. It includes the file path defining where, in which file system, the file is found (or should be created).

openat expects a relative path.

oflag

[edit]

This argument formed by OR'ing together optional parameters and (from <fcntl.h>) one of:

O_RDONLY, O_RDWR and O_WRONLY

Option parameters include:

  • O_APPEND data written will be appended to the end of the file. The file operations will always adjust the position pointer to the end of the file.
  • O_CREAT Create the file if it does not exist; otherwise it has no effect except as noted under O_EXCL below.
  • O_EXCL Used with O_CREAT if the file already exists, then fail, setting errno to EEXIST.
  • O_TRUNC If the file already exists then discard its previous contents, reducing it to an empty file. Not applicable for a device or named pipe.

Additional flags and errors are defined in open call.

creat() is implemented as:

int creat(const char* path, mode_t mode) {
    return open(path, O_WRONLY | O_CREAT | O_TRUNC, mode);
}

fopen uses string flags such as r, w, a and + and returns a file pointer used with fgets, fputs and fclose.

mode

[edit]

Optional and relevant only when creating a new file, defines the file permissions. These include read, write or execute the file by the owner, group or all users. The mode is masked by the calling process's umask: bits set in the umask are cleared in the mode.

See also

[edit]

Notes

[edit]

References

[edit]
  • Advanced Programming in the UNIX Environment by W. Richard Stevens ISBN 81-7808-096-6
  • UNIX concept & application by Sumitabh Das


Source: Wikipedia. Article content is retrieved live through the MediaWiki API.

No preview image
Wikipedia

Open (system call)

In Unix-like operating systems, a program initializes access to a file in a file system using the open system call. This allocates resources associated to the file (the file descriptor), and returns a handle that the process will use to refer to that file. In some cases, the open is performed by the first access. The same file may be opened simultaneously by several processes, and even by the same process, resulting in several file descriptors for the same file; depending on the file organization and filesystem. Operations on the descriptors such as moving the file pointer or closing it are independent—they do not affect other descriptors for the same file. Operations on the file, such as a write, can be seen by operations on the other descriptors: a later read can read the newly written data. During the open, the filesystem may allocate memory for buffers, or it may wait until the first operation. The absolute file path is resolved. This may include connecting to a remote host and notifying an operator that a removable medium is required. It may include the initialization of a communication device. At this point an error may be returned if the host or medium is not available. The first access to at least the directory within the filesystem is performed. An error will usually be returned if the higher level components of the path (directories) cannot be located or accessed. An error will be returned if the file is expected to exist and it does not or if the file should not already exist and it does. If the file is expected to exist and it does, the file access, as restricted by permission flags within the file meta data or access control list, is validated against the requested type of operations. This usually requires an additional filesystem access although in some filesystems meta-flags may be part of the directory structure. If the file is being created, the filesystem may allocate the default initial amount of storage or a specified amount depending on the file system capabilities. If this fails an error will be returned. Updating the directory with the new entry may be performed or it may be delayed until the close is performed. Various other errors which may occur during the open include directory update failures, un-permitted multiple connections, media failures, communication link failures and device failures. The return value must always be examined and an error specific action taken. In many cases programming language-specific run-time library opens may perform additional actions including initializing a run-time library structure related to the file. As soon as a file is no longer needed, the program should close it. This will cause run-time library and filesystem buffers to be updated to the physical media and permit other processes to access the data if exclusive use had been required. Some run-time libraries may close a file if the program calls the run-time exit. Some filesystems may perform the necessary operations if the program terminates. Neither of these is likely to take place in the event of a kernel or power failure. This can cause damaged filesystem structures requiring the running of privileged and lengthy filesystem utilities during which the entire filesystem may be inaccessible.

MORE →
No preview image
Wikipedia

File copying

In computing, file copying is the act of creating a new file such that it has the same content as an existing file. The operation is sometimes called cloning. Generally, an operating system command-line shell provides for file copying via commands cp, copy and similar variants. mv also copies files but only when the source and destination are on different file systems. Windows also provides includes the more advanced tools: Robocopy and xcopy. Many operating systems also provide for copying files via a graphical user interface, such as a file manager. It may provide for copy-and-paste and drag-and-drop user experience. Notable third-party utilities: FastCopy Rclone RichCopy rsync TeraCopy Ultracopier

MORE →
No preview image
Wikipedia

C file input/output

The C programming language provides many standard library functions for file input and output. These functions make up the bulk of the C standard library header . The functionality descends from a "portable I/O package" written by Mike Lesk at Bell Labs in the early 1970s, and officially became part of the Unix operating system in Version 7. The I/O functionality of C is fairly low-level by modern standards; C abstracts all file operations into operations on streams of bytes, which may be "input streams" or "output streams". Unlike some earlier programming languages, C has no direct support for random-access data files; to read from a record in the middle of a file, the programmer must create a stream, seek to the middle of the file, and then read bytes in sequence from the stream. The stream model of file I/O was popularized by Unix, which was developed concurrently with the C programming language itself. The vast majority of modern operating systems have inherited streams from Unix, and many languages in the C programming language family have inherited C's file I/O interface with few if any changes (for example, PHP).

MORE →
Wikipedia

Libuv

libuv is a multi-platform C library that provides support for asynchronous I/O based on event loops. It supports epoll(4), kqueue(2), Windows IOCP, Solaris event ports and, since version 1.45.0, Linux io_uring for select asynchronous file operations. It is primarily designed for use in Node.js but is also used by other software projects. It was originally an abstraction around libev or Windows IOCP, as libev does not support IOCP. In node-v0.9.0's version of libuv, the dependency on libev was removed.

MORE →
TOPIC OF THE DAY

Greenwood / Black Wall Street

Before the 1921 destruction of Tulsa’s Greenwood District, Black residents had created a remarkable center of business and community life. The district included stores, professional offices, entertainment venues and homes owned by Black citizens. Understanding Greenwood means learning what was built—not only what was burned.

MORE →
TRIVIA QUESTION OF THE DAY

Which Black woman became the first elected to the United States Congress?

Shirley Chisholm, elected in 1968.