11-02-2014
It dies with a segmentation fault because open() is not an fopen() substitute. It doesn't even return a pointer the way fopen() does, just a number. Read my example more carefully please.
If you use open(), use write(fd, mem, size).
If you use fopen(), use fwrite(mem, size, 1, fp).
It's okay to use fopen and open in the same program -- as long as you do not write() to a FILE *, or fwrite to a file descriptor, etc. Keep them independent.
If you absolutely insist on using stdio, you could use the setvbuf function I've mentioned several times.
10 More Discussions You Might Find Interesting
1. Linux
I think my serial port(on board) is not working ......
because when I am running same code on two machines its working good....but when my system comes into picture ....it doesnt show any output comming from serial port..........
can anybody tell me how to configure my serial port.........or to... (16 Replies)
Discussion started by: arunchaudhary19
16 Replies
2. Solaris
Hi,
I am working with solaris 9,SUN-Blade-100 and I want to communicate with the Serial port.To check whether the port is working or not.I write code and when I execute the file,then I got the output--
According to this,serial port is not found.can anyone please tell me how to configure the... (1 Reply)
Discussion started by: smartgupta
1 Replies
3. Programming
I have a need to determine when a string has been completely sent via a serial port from a standard 'C' application. The code is as follows:
SerialPort_Send = open (pPortString, O_WRONLY | O_NOCTTY | O_NONBLOCK);
write (SerialPort_Send, pCommandString, strlen (pCommandString));
... (2 Replies)
Discussion started by: ExDes
2 Replies
4. AIX
Hi,
How can i configure my modem in AIX thru serial port (sa0-->tty0)
I have two port serial card configured as sa0
I created tty1 which port is tty0 and which port is tty1 how can i know?? (1 Reply)
Discussion started by: pchangba
1 Replies
5. UNIX for Dummies Questions & Answers
A neighbour's Ubuntu 10.04 machine has five serial ports, one on the motherboard and four on a PCI card. However, only four cards are showing:
# dmesg | grep tty
console enabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:08: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
... (2 Replies)
Discussion started by: dotancohen
2 Replies
6. Shell Programming and Scripting
Hi,
I have a external board connected to my serial port. I need to execute "shutdown -r now" command when system boot up. When system boots up it requires a username ans password. Then I need to run my command. I can use rc script but that is rebooting system before it asks for username and... (0 Replies)
Discussion started by: charlie.arya
0 Replies
7. Solaris
Hi Everyone,
In my environment, I have few T5220. On the iLOM Management Card, I have both Network and Serial port are cabled, I don't have any issues while I try to connect using Network Management port, but when I try to connect the serial port for the same server which is actually connected... (3 Replies)
Discussion started by: bobby320
3 Replies
8. Shell Programming and Scripting
hello all,
please any one can provide me the shell script to write data to /dev/ttyS1
and read responce from /dev/ttyS1 and compare the responce to some string ..
thnxx
---------- Post updated at 03:35 PM ---------- Previous update was at 11:46 AM ----------
any body help me..
how do i... (1 Reply)
Discussion started by: yashwantkumar
1 Replies
9. Web Development
I need to set a serial port to 9600 7E1. How do I accomplish this?
I've tried every combination, with no luck. (6 Replies)
Discussion started by: Meow613
6 Replies
10. Solaris
Hello,
I have an unloaded T5140 machine and want to access the ILOM for the first time and subsequently the network port after that., and then load Solaris 10 the final January 2011 build.
The first part is what confuses me -the cabling.
I am coming from a Windows machine (w/appropriate... (5 Replies)
Discussion started by: joboy
5 Replies
LEARN ABOUT SUNOS
freopen
fopen(3UCB) SunOS/BSD Compatibility Library Functions fopen(3UCB)
NAME
fopen, freopen - open a stream
SYNOPSIS
/usr/ucb/cc[ flag ... ] file ...
#include <stdio.h>
FILE *fopen( file, mode);
const char *file, *mode;
FILE *freopen(file, mode, iop);
const char *file, *mode;
register FILE *iop;
DESCRIPTION
The fopen() function opens the file specified by file and associates a stream with it. If the open succeeds, fopen() returns a pointer to
be used to identify the stream in subsequent operations. The file argument points to a character string that contains the name of the file
to be opened. The mode argument is a character string having one of the following values:
r open for reading
w truncate or create for writing
a append: open for writing at end of file, or create for writing
r+ open for update (reading and writing)
w+ truncate or create for update
a+ append; open or create for update at EOF
The freopen() function opens the file specified by file and associates the stream pointed to by iop with it. The mode argument is used just
as in fopen(). The original stream is closed, regardless of whether the open ultimately succeeds. If the open succeeds, freopen() returns
the original value of iop.
The freopen() function is typically used to attach the preopened streams associated withstdin, stdout, and stderr to other files.
When a file is opened for update, both input and output can be performed on the resulting stream. Output cannot be directly followed by
input without an intervening fseek(3C) or rewind(3C). Input cannot be directly followed by output without an intervening fseek(3C) or
rewind(3C). An input operation that encounters EOF will fail.
RETURN VALUES
The fopen() and freopen() functions return a NULL pointer on failure.
USAGE
The fopen() and freopen() functions have transitional interfaces for 64-bit file offsets. See lf64(5).
SEE ALSO
open(2), fclose(3C), fopen(3C), freopen(3C), fseek(3C), malloc(3C), rewind(3C), lf64(5)
NOTES
Use of these functions should be restricted to applications written on BSD platforms. Use of these functions with any of the system
libraries or in multithreaded applications is unsupported.
To support the same number of open files as the system, fopen() must allocate additional memory for data structures using malloc(3C) after
64 files have been opened. This confuses some programs that use their own memory allocators.
The fopen() and freopen() functions differ from the standard I/O functions fopen(3C) and freopen(3C). The standard I/O functions distin-
guish binary from text files with an additional use of 'b' as part of the mode, enabling portability of fopen(3C) and freopen(3C) beyond
SunOS 4.x systems.
SunOS 5.10 22 Jan 1993 fopen(3UCB)